repo_description: Payload is the open-source, fullstack Next.js framework, giving you instant backend superpowers. Get a full TypeScript backend and admin panel instantly. Use Payload as a headless CMS or for building powerful applications.
repo_topics: cms content-management content-management-system express graphql headless headless-cms jamstack javascript mit-license mongodb nextjs nodejs open-source payload payloadcms postgres react typescript
code: /* tslint:disable */
  /* 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: {
      posts: Post;
      categories: Category;
      articles: Article;
      'payload-kv': PayloadKv;
      users: User;
      'payload-locked-documents': PayloadLockedDocument;
      'payload-preferences': PayloadPreference;
      'payload-migrations': PayloadMigration;
    };
    collectionsJoins: {};
    collectionsSelect: {
      posts: PostsSelect<false> | PostsSelect<true>;
      categories: CategoriesSelect<false> | CategoriesSelect<true>;
      articles: ArticlesSelect<false> | ArticlesSelect<true>;
      'payload-kv': PayloadKvSelect<false> | PayloadKvSelect<true>;
      users: UsersSelect<false> | UsersSelect<true>;
      'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
      'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
      'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
    };
    db: {
      defaultIDType: string;
    };
    fallbackLocale: null;
    globals: {};
    globalsSelect: {};
    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` "posts".
   */
  export interface Post {
    id: string;
    title?: string | null;
    updatedAt: string;
    createdAt: string;
  }
  /**
   * This interface was referenced by `Config`'s JSON-Schema
   * via the `definition` "categories".
   */
  export interface Category {
    id: string;
    name?: string | null;
    updatedAt: string;
    createdAt: string;
  }
  /**
   * This interface was referenced by `Config`'s JSON-Schema
   * via the `definition` "articles".
   */
  export interface Article {
    id: string;
    title?: string | null;
    category?: (string | null) | Category;
    updatedAt: string;
    createdAt: string;
  }
  /**
   * This interface was referenced by `Config`'s JSON-Schema
   * via the `definition` "payload-kv".
   */
  export interface PayloadKv {
    id: string;
    key: string;
    data:
      | {
          [k: string]: unknown;
        }
      | unknown[]
      | string
      | number
      | boolean
      | null;
  }
  /**
   * This interface was referenced by `Config`'s JSON-Schema
   * via the `definition` "users".
   */
  export interface User {
    id: string;
    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-locked-documents".
   */
  export interface PayloadLockedDocument {
    id: string;
    document?:
      | ({
          relationTo: 'posts';
          value: string | Post;
        } | null)
      | ({
          relationTo: 'categories';
          value: string | Category;
        } | null)
      | ({
          relationTo: 'articles';
          value: string | Article;
        } | null)
      | ({
          relationTo: 'users';
          value: string | User;
        } | null);
    globalSlug?: string | null;
    user: {
      relationTo: 'users';
      value: string | User;
    };
    updatedAt: string;
    createdAt: string;
  }
  /**
   * This interface was referenced by `Config`'s JSON-Schema
   * via the `definition` "payload-preferences".
   */
  export interface PayloadPreference {
    id: string;
    user: {
      relationTo: 'users';
      value: string | 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: string;
    name?: string | null;
    batch?: number | null;
    updatedAt: string;
    createdAt: string;
  }
  /**
   * This interface was referenced by `Config`'s JSON-Schema
   * via the `definition` "posts_select".
   */
  export interface PostsSelect<T extends boolean = true> {
    title?: T;
    updatedAt?: T;
    createdAt?: T;
  }
  /**
   * This interface was referenced by `Config`'s JSON-Schema
   * via the `definition` "categories_select".
   */
  export interface CategoriesSelect<T extends boolean = true> {
    name?: T;
    updatedAt?: T;
    createdAt?: T;
  }
  /**
   * This interface was referenced by `Config`'s JSON-Schema
   * via the `definition` "articles_select".
   */
  export interface ArticlesSelect<T extends boolean = true> {
    title?: T;
    category?: T;
    updatedAt?: T;
    createdAt?: 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` "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-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` "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 {}
  }