/* 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: {
    'error-fields': ErrorField;
    uploads: Upload;
    'validate-drafts-on': ValidateDraftsOn;
    'validate-drafts-off': ValidateDraftsOff;
    'validate-drafts-on-autosave': ValidateDraftsOnAutosave;
    'prev-value': PrevValue;
    'prev-value-relation': PrevValueRelation;
    users: User;
    'payload-locked-documents': PayloadLockedDocument;
    'payload-preferences': PayloadPreference;
    'payload-migrations': PayloadMigration;
  };
  collectionsJoins: {};
  collectionsSelect: {
    'error-fields': ErrorFieldsSelect<false> | ErrorFieldsSelect<true>;
    uploads: UploadsSelect<false> | UploadsSelect<true>;
    'validate-drafts-on': ValidateDraftsOnSelect<false> | ValidateDraftsOnSelect<true>;
    'validate-drafts-off': ValidateDraftsOffSelect<false> | ValidateDraftsOffSelect<true>;
    'validate-drafts-on-autosave': ValidateDraftsOnAutosaveSelect<false> | ValidateDraftsOnAutosaveSelect<true>;
    'prev-value': PrevValueSelect<false> | PrevValueSelect<true>;
    'prev-value-relation': PrevValueRelationSelect<false> | PrevValueRelationSelect<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;
  };
  globals: {
    'global-validate-drafts-on': GlobalValidateDraftsOn;
  };
  globalsSelect: {
    'global-validate-drafts-on': GlobalValidateDraftsOnSelect<false> | GlobalValidateDraftsOnSelect<true>;
  };
  locale: null;
  user: User & {
    collection: 'users';
  };
  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` "error-fields".
 */
export interface ErrorField {
  id: string;
  parentArray?:
    | {
        childArray: {
          childArrayText: string;
          id?: string | null;
        }[];
        id?: string | null;
      }[]
    | null;
  home: {
    tabText: string;
    text: string;
    array?:
      | {
          requiredArrayText: string;
          arrayText?: string | null;
          group: {
            text: string;
            number: number;
            date: string;
            checkbox: boolean;
          };
          code: string;
          json:
            | {
                [k: string]: unknown;
              }
            | unknown[]
            | string
            | number
            | boolean
            | null;
          email: string;
          /**
           * @minItems 2
           * @maxItems 2
           */
          point: [number, number];
          radio: 'mint' | 'dark_gray';
          relationship: string | User;
          richtext: {
            root: {
              type: string;
              children: {
                type: string;
                version: number;
                [k: string]: unknown;
              }[];
              direction: ('ltr' | 'rtl') | null;
              format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
              indent: number;
              version: number;
            };
            [k: string]: unknown;
          };
          select: 'mint' | 'dark_gray';
          upload: string | Upload;
          text: string;
          textarea: string;
          id?: string | null;
        }[]
      | null;
  };
  tabText: string;
  text: string;
  array?:
    | {
        requiredArrayText: string;
        arrayText?: string | null;
        group: {
          text: string;
          number: number;
          date: string;
          checkbox: boolean;
        };
        code: string;
        json:
          | {
              [k: string]: unknown;
            }
          | unknown[]
          | string
          | number
          | boolean
          | null;
        email: string;
        /**
         * @minItems 2
         * @maxItems 2
         */
        point: [number, number];
        radio: 'mint' | 'dark_gray';
        relationship: string | User;
        richtext: {
          root: {
            type: string;
            children: {
              type: string;
              version: number;
              [k: string]: unknown;
            }[];
            direction: ('ltr' | 'rtl') | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
          };
          [k: string]: unknown;
        };
        select: 'mint' | 'dark_gray';
        upload: string | Upload;
        text: string;
        textarea: string;
        id?: string | null;
      }[]
    | null;
  layout?:
    | {
        tabText: string;
        text: string;
        array?:
          | {
              requiredArrayText: string;
              arrayText?: string | null;
              group: {
                text: string;
                number: number;
                date: string;
                checkbox: boolean;
              };
              code: string;
              json:
                | {
                    [k: string]: unknown;
                  }
                | unknown[]
                | string
                | number
                | boolean
                | null;
              email: string;
              /**
               * @minItems 2
               * @maxItems 2
               */
              point: [number, number];
              radio: 'mint' | 'dark_gray';
              relationship: string | User;
              richtext: {
                root: {
                  type: string;
                  children: {
                    type: string;
                    version: number;
                    [k: string]: unknown;
                  }[];
                  direction: ('ltr' | 'rtl') | null;
                  format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                  indent: number;
                  version: number;
                };
                [k: string]: unknown;
              };
              select: 'mint' | 'dark_gray';
              upload: string | Upload;
              text: string;
              textarea: string;
              id?: string | null;
            }[]
          | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'block1';
      }[]
    | null;
  group: {
    text: string;
  };
  updatedAt: string;
  createdAt: string;
}
/**
 * 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;
  password?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "uploads".
 */
export interface Upload {
  id: string;
  text?: string | null;
  media?: (string | null) | Upload;
  richText?: {
    root: {
      type: string;
      children: {
        type: string;
        version: number;
        [k: string]: unknown;
      }[];
      direction: ('ltr' | 'rtl') | null;
      format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
      indent: number;
      version: number;
    };
    [k: string]: unknown;
  } | null;
  updatedAt: string;
  createdAt: string;
  url?: string | null;
  thumbnailURL?: string | null;
  filename?: string | null;
  mimeType?: string | null;
  filesize?: number | null;
  width?: number | null;
  height?: number | null;
  focalX?: number | null;
  focalY?: number | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "validate-drafts-on".
 */
export interface ValidateDraftsOn {
  id: string;
  title: string;
  updatedAt: string;
  createdAt: string;
  _status?: ('draft' | 'published') | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "validate-drafts-off".
 */
export interface ValidateDraftsOff {
  id: string;
  title: string;
  updatedAt: string;
  createdAt: string;
  _status?: ('draft' | 'published') | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "validate-drafts-on-autosave".
 */
export interface ValidateDraftsOnAutosave {
  id: string;
  title: string;
  updatedAt: string;
  createdAt: string;
  _status?: ('draft' | 'published') | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "prev-value".
 */
export interface PrevValue {
  id: string;
  title: string;
  description?: string | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "prev-value-relation".
 */
export interface PrevValueRelation {
  id: string;
  previousValueRelation?: (string | null) | PrevValue;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-locked-documents".
 */
export interface PayloadLockedDocument {
  id: string;
  document?:
    | ({
        relationTo: 'error-fields';
        value: string | ErrorField;
      } | null)
    | ({
        relationTo: 'uploads';
        value: string | Upload;
      } | null)
    | ({
        relationTo: 'validate-drafts-on';
        value: string | ValidateDraftsOn;
      } | null)
    | ({
        relationTo: 'validate-drafts-off';
        value: string | ValidateDraftsOff;
      } | null)
    | ({
        relationTo: 'validate-drafts-on-autosave';
        value: string | ValidateDraftsOnAutosave;
      } | null)
    | ({
        relationTo: 'prev-value';
        value: string | PrevValue;
      } | null)
    | ({
        relationTo: 'prev-value-relation';
        value: string | PrevValueRelation;
      } | 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` "error-fields_select".
 */
export interface ErrorFieldsSelect<T extends boolean = true> {
  parentArray?:
    | T
    | {
        childArray?:
          | T
          | {
              childArrayText?: T;
              id?: T;
            };
        id?: T;
      };
  home?:
    | T
    | {
        tabText?: T;
        text?: T;
        array?:
          | T
          | {
              requiredArrayText?: T;
              arrayText?: T;
              group?:
                | T
                | {
                    text?: T;
                    number?: T;
                    date?: T;
                    checkbox?: T;
                  };
              code?: T;
              json?: T;
              email?: T;
              point?: T;
              radio?: T;
              relationship?: T;
              richtext?: T;
              select?: T;
              upload?: T;
              text?: T;
              textarea?: T;
              id?: T;
            };
      };
  tabText?: T;
  text?: T;
  array?:
    | T
    | {
        requiredArrayText?: T;
        arrayText?: T;
        group?:
          | T
          | {
              text?: T;
              number?: T;
              date?: T;
              checkbox?: T;
            };
        code?: T;
        json?: T;
        email?: T;
        point?: T;
        radio?: T;
        relationship?: T;
        richtext?: T;
        select?: T;
        upload?: T;
        text?: T;
        textarea?: T;
        id?: T;
      };
  layout?:
    | T
    | {
        block1?:
          | T
          | {
              tabText?: T;
              text?: T;
              array?:
                | T
                | {
                    requiredArrayText?: T;
                    arrayText?: T;
                    group?:
                      | T
                      | {
                          text?: T;
                          number?: T;
                          date?: T;
                          checkbox?: T;
                        };
                    code?: T;
                    json?: T;
                    email?: T;
                    point?: T;
                    radio?: T;
                    relationship?: T;
                    richtext?: T;
                    select?: T;
                    upload?: T;
                    text?: T;
                    textarea?: T;
                    id?: T;
                  };
              id?: T;
              blockName?: T;
            };
      };
  group?:
    | T
    | {
        text?: T;
      };
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "uploads_select".
 */
export interface UploadsSelect<T extends boolean = true> {
  text?: T;
  media?: T;
  richText?: T;
  updatedAt?: T;
  createdAt?: T;
  url?: T;
  thumbnailURL?: T;
  filename?: T;
  mimeType?: T;
  filesize?: T;
  width?: T;
  height?: T;
  focalX?: T;
  focalY?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "validate-drafts-on_select".
 */
export interface ValidateDraftsOnSelect<T extends boolean = true> {
  title?: T;
  updatedAt?: T;
  createdAt?: T;
  _status?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "validate-drafts-off_select".
 */
export interface ValidateDraftsOffSelect<T extends boolean = true> {
  title?: T;
  updatedAt?: T;
  createdAt?: T;
  _status?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "validate-drafts-on-autosave_select".
 */
export interface ValidateDraftsOnAutosaveSelect<T extends boolean = true> {
  title?: T;
  updatedAt?: T;
  createdAt?: T;
  _status?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "prev-value_select".
 */
export interface PrevValueSelect<T extends boolean = true> {
  title?: T;
  description?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "prev-value-relation_select".
 */
export interface PrevValueRelationSelect<T extends boolean = true> {
  previousValueRelation?: T;
  updatedAt?: T;
  createdAt?: 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;
}
/**
 * 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` "global-validate-drafts-on".
 */
export interface GlobalValidateDraftsOn {
  id: string;
  group: {
    title: string;
  };
  _status?: ('draft' | 'published') | null;
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "global-validate-drafts-on_select".
 */
export interface GlobalValidateDraftsOnSelect<T extends boolean = true> {
  group?:
    | T
    | {
        title?: T;
      };
  _status?: T;
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "auth".
 */
export interface Auth {
  [k: string]: unknown;
}


declare module 'payload' {
  // @ts-ignore 
  export interface GeneratedTypes extends Config {}
}