/* eslint-disable */
/**
 * This file was automatically generated by Payload.
 * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
 * and re-run `payload generate:types` to regenerate this file.
 */

/**
 * Supported timezones in IANA format.
 *
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "supportedTimezones".
 */
export type SupportedTimezones =
  | 'Pacific/Midway'
  | 'Pacific/Niue'
  | 'Pacific/Honolulu'
  | 'Pacific/Rarotonga'
  | 'America/Anchorage'
  | 'Pacific/Gambier'
  | 'America/Los_Angeles'
  | 'America/Tijuana'
  | 'America/Denver'
  | 'America/Phoenix'
  | 'America/Chicago'
  | 'America/Guatemala'
  | 'America/New_York'
  | 'America/Bogota'
  | 'America/Caracas'
  | 'America/Santiago'
  | 'America/Buenos_Aires'
  | 'America/Sao_Paulo'
  | 'Atlantic/South_Georgia'
  | 'Atlantic/Azores'
  | 'Atlantic/Cape_Verde'
  | 'Europe/London'
  | 'Europe/Berlin'
  | 'Africa/Lagos'
  | 'Europe/Athens'
  | 'Africa/Cairo'
  | 'Europe/Moscow'
  | 'Asia/Riyadh'
  | 'Asia/Dubai'
  | 'Asia/Baku'
  | 'Asia/Karachi'
  | 'Asia/Tashkent'
  | 'Asia/Calcutta'
  | 'Asia/Dhaka'
  | 'Asia/Almaty'
  | 'Asia/Jakarta'
  | 'Asia/Bangkok'
  | 'Asia/Shanghai'
  | 'Asia/Singapore'
  | 'Asia/Tokyo'
  | 'Asia/Seoul'
  | 'Australia/Brisbane'
  | 'Australia/Sydney'
  | 'Pacific/Guam'
  | 'Pacific/Noumea'
  | 'Pacific/Auckland'
  | 'Pacific/Fiji';

export interface Config {
  auth: {
    users: UserAuthOperations;
  };
  blocks: {};
  collections: {
    users: User;
    'payload-kv': PayloadKv;
    'payload-locked-documents': PayloadLockedDocument;
    'payload-preferences': PayloadPreference;
    'payload-migrations': PayloadMigration;
  };
  collectionsJoins: {};
  collectionsSelect: {
    users: UsersSelect<false> | UsersSelect<true>;
    'payload-kv': PayloadKvSelect<false> | PayloadKvSelect<true>;
    'payload-locked-documents':
      | PayloadLockedDocumentsSelect<false>
      | PayloadLockedDocumentsSelect<true>;
    'payload-preferences':
      | PayloadPreferencesSelect<false>
      | PayloadPreferencesSelect<true>;
    'payload-migrations':
      | PayloadMigrationsSelect<false>
      | PayloadMigrationsSelect<true>;
  };
  db: {
    defaultIDType: number;
  };
  fallbackLocale: null;
  globals: {
    'landing-page': LandingPage;
  };
  globalsSelect: {
    'landing-page': LandingPageSelect<false> | LandingPageSelect<true>;
  };
  locale: null;
  widgets: {
    collections: CollectionsWidget;
  };
  user: User;
  jobs: {
    tasks: unknown;
    workflows: unknown;
  };
}
export interface UserAuthOperations {
  forgotPassword: {
    email: string;
    password: string;
  };
  login: {
    email: string;
    password: string;
  };
  registerFirstUser: {
    email: string;
    password: string;
  };
  unlock: {
    email: string;
    password: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "users".
 */
export interface User {
  id: number;
  updatedAt: string;
  createdAt: string;
  email: string;
  resetPasswordToken?: string | null;
  resetPasswordExpiration?: string | null;
  salt?: string | null;
  hash?: string | null;
  loginAttempts?: number | null;
  lockUntil?: string | null;
  sessions?:
    | {
        id: string;
        createdAt?: string | null;
        expiresAt: string;
      }[]
    | null;
  password?: string | null;
  collection: 'users';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-kv".
 */
export interface PayloadKv {
  id: number;
  key: string;
  data:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-locked-documents".
 */
export interface PayloadLockedDocument {
  id: number;
  document?: {
    relationTo: 'users';
    value: number | User;
  } | null;
  globalSlug?: string | null;
  user: {
    relationTo: 'users';
    value: number | User;
  };
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-preferences".
 */
export interface PayloadPreference {
  id: number;
  user: {
    relationTo: 'users';
    value: number | User;
  };
  key?: string | null;
  value?:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-migrations".
 */
export interface PayloadMigration {
  id: number;
  name?: string | null;
  batch?: number | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "users_select".
 */
export interface UsersSelect<T extends boolean = true> {
  updatedAt?: T;
  createdAt?: T;
  email?: T;
  resetPasswordToken?: T;
  resetPasswordExpiration?: T;
  salt?: T;
  hash?: T;
  loginAttempts?: T;
  lockUntil?: T;
  sessions?:
    | T
    | {
        id?: T;
        createdAt?: T;
        expiresAt?: T;
      };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-kv_select".
 */
export interface PayloadKvSelect<T extends boolean = true> {
  key?: T;
  data?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-locked-documents_select".
 */
export interface PayloadLockedDocumentsSelect<T extends boolean = true> {
  document?: T;
  globalSlug?: T;
  user?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-preferences_select".
 */
export interface PayloadPreferencesSelect<T extends boolean = true> {
  user?: T;
  key?: T;
  value?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-migrations_select".
 */
export interface PayloadMigrationsSelect<T extends boolean = true> {
  name?: T;
  batch?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "landing-page".
 */
export interface LandingPage {
  id: number;
  /**
   * Add, remove, and reorder landing page sections while keeping live preview and autosave.
   */
  layout?:
    | (
        | {
            badgeEmoji?: string | null;
            badgeText?: string | null;
            headingPrefix?: string | null;
            headingHighlight?: string | null;
            description?: string | null;
            primaryCta?: {
              label?: string | null;
              url?: string | null;
            };
            highlights?:
              | {
                  label?: string | null;
                  id?: string | null;
                }[]
              | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'hero';
          }
        | {
            heading?: string | null;
            items?:
              | {
                  name?: string | null;
                  accent?: string | null;
                  id?: string | null;
                }[]
              | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'logoCloud';
          }
        | {
            heading?: string | null;
            description?: string | null;
            items?:
              | {
                  icon?: string | null;
                  title?: string | null;
                  description?: string | null;
                  id?: string | null;
                }[]
              | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'features';
          }
        | {
            heading?: string | null;
            description?: string | null;
            items?:
              | {
                  value?: string | null;
                  label?: string | null;
                  description?: string | null;
                  id?: string | null;
                }[]
              | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'stats';
          }
        | {
            heading?: string | null;
            description?: string | null;
            categories?:
              | {
                  category?: string | null;
                  technologies?:
                    | {
                        name?: string | null;
                        description?: string | null;
                        id?: string | null;
                      }[]
                    | null;
                  id?: string | null;
                }[]
              | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'techStack';
          }
        | {
            heading?: string | null;
            description?: string | null;
            items?:
              | {
                  quote?: string | null;
                  name?: string | null;
                  role?: string | null;
                  company?: string | null;
                  avatarEmoji?: string | null;
                  id?: string | null;
                }[]
              | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'testimonials';
          }
        | {
            heading?: string | null;
            description?: string | null;
            plans?:
              | {
                  name?: string | null;
                  price?: string | null;
                  billingPeriod?: string | null;
                  description?: string | null;
                  badge?: string | null;
                  isHighlighted?: boolean | null;
                  ctaLabel?: string | null;
                  ctaUrl?: string | null;
                  features?:
                    | {
                        label?: string | null;
                        id?: string | null;
                      }[]
                    | null;
                  id?: string | null;
                }[]
              | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'pricing';
          }
        | {
            heading?: string | null;
            description?: string | null;
            items?:
              | {
                  question?: string | null;
                  answer?: string | null;
                  id?: string | null;
                }[]
              | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'faq';
          }
        | {
            heading?: string | null;
            description?: string | null;
            commandLabel?: string | null;
            command?: string | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'cta';
          }
      )[]
    | null;
  _status?: ('draft' | 'published') | null;
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "landing-page_select".
 */
export interface LandingPageSelect<T extends boolean = true> {
  layout?:
    | T
    | {
        hero?:
          | T
          | {
              badgeEmoji?: T;
              badgeText?: T;
              headingPrefix?: T;
              headingHighlight?: T;
              description?: T;
              primaryCta?:
                | T
                | {
                    label?: T;
                    url?: T;
                  };
              highlights?:
                | T
                | {
                    label?: T;
                    id?: T;
                  };
              id?: T;
              blockName?: T;
            };
        logoCloud?:
          | T
          | {
              heading?: T;
              items?:
                | T
                | {
                    name?: T;
                    accent?: T;
                    id?: T;
                  };
              id?: T;
              blockName?: T;
            };
        features?:
          | T
          | {
              heading?: T;
              description?: T;
              items?:
                | T
                | {
                    icon?: T;
                    title?: T;
                    description?: T;
                    id?: T;
                  };
              id?: T;
              blockName?: T;
            };
        stats?:
          | T
          | {
              heading?: T;
              description?: T;
              items?:
                | T
                | {
                    value?: T;
                    label?: T;
                    description?: T;
                    id?: T;
                  };
              id?: T;
              blockName?: T;
            };
        techStack?:
          | T
          | {
              heading?: T;
              description?: T;
              categories?:
                | T
                | {
                    category?: T;
                    technologies?:
                      | T
                      | {
                          name?: T;
                          description?: T;
                          id?: T;
                        };
                    id?: T;
                  };
              id?: T;
              blockName?: T;
            };
        testimonials?:
          | T
          | {
              heading?: T;
              description?: T;
              items?:
                | T
                | {
                    quote?: T;
                    name?: T;
                    role?: T;
                    company?: T;
                    avatarEmoji?: T;
                    id?: T;
                  };
              id?: T;
              blockName?: T;
            };
        pricing?:
          | T
          | {
              heading?: T;
              description?: T;
              plans?:
                | T
                | {
                    name?: T;
                    price?: T;
                    billingPeriod?: T;
                    description?: T;
                    badge?: T;
                    isHighlighted?: T;
                    ctaLabel?: T;
                    ctaUrl?: T;
                    features?:
                      | T
                      | {
                          label?: T;
                          id?: T;
                        };
                    id?: T;
                  };
              id?: T;
              blockName?: T;
            };
        faq?:
          | T
          | {
              heading?: T;
              description?: T;
              items?:
                | T
                | {
                    question?: T;
                    answer?: T;
                    id?: T;
                  };
              id?: T;
              blockName?: T;
            };
        cta?:
          | T
          | {
              heading?: T;
              description?: T;
              commandLabel?: T;
              command?: T;
              id?: T;
              blockName?: T;
            };
      };
  _status?: T;
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "collections_widget".
 */
export interface CollectionsWidget {
  data?: {
    [k: string]: unknown;
  };
  width: 'full';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "auth".
 */
export interface Auth {
  [k: string]: unknown;
}

declare module 'payload' {
  export interface GeneratedTypes extends Config {}
}
