/* 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: {
    pages: Page;
    media: Media;
    users: User;
    'audit-logs': AuditLog;
    'shared-layouts': SharedLayout;
    'shared-ctas': SharedCta;
    redirects: Redirect;
    forms: Form;
    'form-submissions': FormSubmission;
    'payload-kv': PayloadKv;
    'payload-jobs': PayloadJob;
    'payload-folders': FolderInterface;
    'payload-locked-documents': PayloadLockedDocument;
    'payload-preferences': PayloadPreference;
    'payload-migrations': PayloadMigration;
  };
  collectionsJoins: {
    'payload-folders': {
      documentsAndFolders: 'payload-folders' | 'media';
    };
  };
  collectionsSelect: {
    pages: PagesSelect<false> | PagesSelect<true>;
    media: MediaSelect<false> | MediaSelect<true>;
    users: UsersSelect<false> | UsersSelect<true>;
    'audit-logs': AuditLogsSelect<false> | AuditLogsSelect<true>;
    'shared-layouts': SharedLayoutsSelect<false> | SharedLayoutsSelect<true>;
    'shared-ctas': SharedCtasSelect<false> | SharedCtasSelect<true>;
    redirects: RedirectsSelect<false> | RedirectsSelect<true>;
    forms: FormsSelect<false> | FormsSelect<true>;
    'form-submissions': FormSubmissionsSelect<false> | FormSubmissionsSelect<true>;
    'payload-kv': PayloadKvSelect<false> | PayloadKvSelect<true>;
    'payload-jobs': PayloadJobsSelect<false> | PayloadJobsSelect<true>;
    'payload-folders': PayloadFoldersSelect<false> | PayloadFoldersSelect<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: {
    header: Header;
    footer: Footer;
    scripts: Script;
  };
  globalsSelect: {
    header: HeaderSelect<false> | HeaderSelect<true>;
    footer: FooterSelect<false> | FooterSelect<true>;
    scripts: ScriptsSelect<false> | ScriptsSelect<true>;
  };
  locale: null;
  user: User & {
    collection: 'users';
  };
  jobs: {
    tasks: {
      schedulePublish: TaskSchedulePublish;
      inline: {
        input: unknown;
        output: 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` "pages".
 */
export interface Page {
  id: number;
  title: string;
  layout: (
    | {
        variant: 'hero' | 'offer-banner';
        /**
         * Large image for desktop views (Landscape).
         */
        desktopImage: number | Media;
        /**
         * Optional optimized image for mobile views (Portrait). Falls back to Desktop image if empty.
         */
        mobileImage?: (number | null) | Media;
        headline: {
          root: {
            type: string;
            children: {
              type: any;
              version: number;
              [k: string]: unknown;
            }[];
            direction: ('ltr' | 'rtl') | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
          };
          [k: string]: unknown;
        };
        subheadline?: {
          root: {
            type: string;
            children: {
              type: any;
              version: number;
              [k: string]: unknown;
            }[];
            direction: ('ltr' | 'rtl') | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
          };
          [k: string]: unknown;
        } | null;
        price?: {
          prefix?: string | null;
          amount?: string | null;
          suffix?: string | null;
        };
        /**
         * Optional inclusion text (e.g., "including continental breakfast"). Will not render if left empty.
         */
        inclusionText?: string | null;
        highlights?:
          | {
              icon?: (number | null) | Media;
              label: string;
              id?: string | null;
            }[]
          | null;
        ctas?:
          | {
              label: string;
              href: string;
              style?: ('primary' | 'outline') | null;
              /**
               * Optional HTML id attribute for tracking or scroll targeting (e.g. "hero-book-now").
               */
              ctaId?: string | null;
              id?: string | null;
            }[]
          | null;
        /**
         * The small text at the bottom (e.g. "PERFECT FOR A REFRESHING...")
         */
        footerText?: string | null;
        /**
         * Set an expiry date to enable the countdown timer on the frontend.
         */
        expiresAt?: string | null;
        meta?: {
          /**
           * Optional background image for the block section.
           */
          backgroundImage?: (number | null) | Media;
          /**
           * Used for #hash navigation (e.g. send-request).
           */
          anchorId?: string | null;
          /**
           * Optional classes applied to this block wrapper.
           */
          className?: string | null;
          /**
           * Key/value pairs rendered as data-* attributes.
           */
          dataAttributes?:
            | {
                key: string;
                value?: string | null;
                id?: string | null;
              }[]
            | null;
          tracking?: {
            eventName?: string | null;
            eventPayload?:
              | {
                  [k: string]: unknown;
                }
              | unknown[]
              | string
              | number
              | boolean
              | null;
          };
        };
        id?: string | null;
        blockName?: string | null;
        blockType: 'heroOfferV1';
      }
    | {
        content: {
          root: {
            type: string;
            children: {
              type: any;
              version: number;
              [k: string]: unknown;
            }[];
            direction: ('ltr' | 'rtl') | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
          };
          [k: string]: unknown;
        };
        meta?: {
          /**
           * Optional background image for the block section.
           */
          backgroundImage?: (number | null) | Media;
          /**
           * Used for #hash navigation (e.g. send-request).
           */
          anchorId?: string | null;
          /**
           * Optional classes applied to this block wrapper.
           */
          className?: string | null;
          /**
           * Key/value pairs rendered as data-* attributes.
           */
          dataAttributes?:
            | {
                key: string;
                value?: string | null;
                id?: string | null;
              }[]
            | null;
          tracking?: {
            eventName?: string | null;
            eventPayload?:
              | {
                  [k: string]: unknown;
                }
              | unknown[]
              | string
              | number
              | boolean
              | null;
          };
        };
        id?: string | null;
        blockName?: string | null;
        blockType: 'richTextV1';
      }
    | {
        heading: {
          root: {
            type: string;
            children: {
              type: any;
              version: number;
              [k: string]: unknown;
            }[];
            direction: ('ltr' | 'rtl') | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
          };
          [k: string]: unknown;
        };
        intro?: string | null;
        /**
         * Optional section ornament image.
         */
        ornament?: (number | null) | Media;
        /**
         * Controls layout intent. Frontend decides rendering.
         */
        variant: 'card-grid' | 'media-stack' | 'media-grid' | 'feature-cards' | 'logo-grid';
        /**
         * Buttons that appear in the section header area (e.g. the "Book Now" button on the right).
         */
        ctas?:
          | {
              label: string;
              href: string;
              style?: ('primary' | 'outline') | null;
              /**
               * Optional HTML id attribute for tracking or scroll targeting (e.g. "hero-book-now").
               */
              ctaId?: string | null;
              id?: string | null;
            }[]
          | null;
        items?:
          | {
              /**
               * Optional for some variants (e.g. Feature Cards).
               */
              image?: (number | null) | Media;
              icon?: (number | null) | Media;
              eyebrow?: {
                root: {
                  type: string;
                  children: {
                    type: any;
                    version: number;
                    [k: string]: unknown;
                  }[];
                  direction: ('ltr' | 'rtl') | null;
                  format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                  indent: number;
                  version: number;
                };
                [k: string]: unknown;
              } | null;
              title: {
                root: {
                  type: string;
                  children: {
                    type: any;
                    version: number;
                    [k: string]: unknown;
                  }[];
                  direction: ('ltr' | 'rtl') | null;
                  format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                  indent: number;
                  version: number;
                };
                [k: string]: unknown;
              };
              priceLine?: string | null;
              /**
               * Short emphasised line (e.g. INCLUDING CONTINENTAL BREAKFAST)
               */
              subline?: {
                root: {
                  type: string;
                  children: {
                    type: any;
                    version: number;
                    [k: string]: unknown;
                  }[];
                  direction: ('ltr' | 'rtl') | null;
                  format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                  indent: number;
                  version: number;
                };
                [k: string]: unknown;
              } | null;
              /**
               * Short descriptive content with formatting support
               */
              body?: {
                root: {
                  type: string;
                  children: {
                    type: any;
                    version: number;
                    [k: string]: unknown;
                  }[];
                  direction: ('ltr' | 'rtl') | null;
                  format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                  indent: number;
                  version: number;
                };
                [k: string]: unknown;
              } | null;
              cta?: {
                label?: string | null;
                href?: string | null;
                /**
                 * Optional HTML id attribute for tracking or scroll targeting (e.g. "hero-book-now").
                 */
                ctaId?: string | null;
              };
              id?: string | null;
            }[]
          | null;
        meta?: {
          /**
           * Optional background image for the block section.
           */
          backgroundImage?: (number | null) | Media;
          /**
           * Used for #hash navigation (e.g. send-request).
           */
          anchorId?: string | null;
          /**
           * Optional classes applied to this block wrapper.
           */
          className?: string | null;
          /**
           * Key/value pairs rendered as data-* attributes.
           */
          dataAttributes?:
            | {
                key: string;
                value?: string | null;
                id?: string | null;
              }[]
            | null;
          tracking?: {
            eventName?: string | null;
            eventPayload?:
              | {
                  [k: string]: unknown;
                }
              | unknown[]
              | string
              | number
              | boolean
              | null;
          };
        };
        id?: string | null;
        blockName?: string | null;
        blockType: 'contentListV1';
      }
    | {
        headline: {
          root: {
            type: string;
            children: {
              type: any;
              version: number;
              [k: string]: unknown;
            }[];
            direction: ('ltr' | 'rtl') | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
          };
          [k: string]: unknown;
        };
        body?: {
          root: {
            type: string;
            children: {
              type: any;
              version: number;
              [k: string]: unknown;
            }[];
            direction: ('ltr' | 'rtl') | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
          };
          [k: string]: unknown;
        } | null;
        style?: ('primary' | 'secondary' | 'outline') | null;
        ctas?:
          | {
              label: string;
              href: string;
              style?: ('primary' | 'secondary' | 'outline') | null;
              /**
               * Optional HTML id attribute for tracking or scroll targeting (e.g. "hero-book-now").
               */
              ctaId?: string | null;
              id?: string | null;
            }[]
          | null;
        meta?: {
          /**
           * Optional background image for the block section.
           */
          backgroundImage?: (number | null) | Media;
          /**
           * Used for #hash navigation (e.g. send-request).
           */
          anchorId?: string | null;
          /**
           * Optional classes applied to this block wrapper.
           */
          className?: string | null;
          /**
           * Key/value pairs rendered as data-* attributes.
           */
          dataAttributes?:
            | {
                key: string;
                value?: string | null;
                id?: string | null;
              }[]
            | null;
          tracking?: {
            eventName?: string | null;
            eventPayload?:
              | {
                  [k: string]: unknown;
                }
              | unknown[]
              | string
              | number
              | boolean
              | null;
          };
        };
        id?: string | null;
        blockName?: string | null;
        blockType: 'ctaBannerV1';
      }
    | {
        heading: {
          root: {
            type: string;
            children: {
              type: any;
              version: number;
              [k: string]: unknown;
            }[];
            direction: ('ltr' | 'rtl') | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
          };
          [k: string]: unknown;
        };
        description?: string | null;
        /**
         * Select which form to render on this page.
         */
        form: number | Form;
        /**
         * Optional hidden fields (campaign/source/etc.)
         */
        hiddenFields?:
          | {
              name: string;
              value?: string | null;
              id?: string | null;
            }[]
          | null;
        meta?: {
          /**
           * Optional background image for the block section.
           */
          backgroundImage?: (number | null) | Media;
          /**
           * Used for #hash navigation (e.g. send-request).
           */
          anchorId?: string | null;
          /**
           * Optional classes applied to this block wrapper.
           */
          className?: string | null;
          /**
           * Key/value pairs rendered as data-* attributes.
           */
          dataAttributes?:
            | {
                key: string;
                value?: string | null;
                id?: string | null;
              }[]
            | null;
          tracking?: {
            eventName?: string | null;
            eventPayload?:
              | {
                  [k: string]: unknown;
                }
              | unknown[]
              | string
              | number
              | boolean
              | null;
          };
        };
        id?: string | null;
        blockName?: string | null;
        blockType: 'leadFormV1';
      }
    | {
        images?:
          | {
              image: number | Media;
              alt?: string | null;
              id?: string | null;
            }[]
          | null;
        meta?: {
          /**
           * Optional background image for the block section.
           */
          backgroundImage?: (number | null) | Media;
          /**
           * Used for #hash navigation (e.g. send-request).
           */
          anchorId?: string | null;
          /**
           * Optional classes applied to this block wrapper.
           */
          className?: string | null;
          /**
           * Key/value pairs rendered as data-* attributes.
           */
          dataAttributes?:
            | {
                key: string;
                value?: string | null;
                id?: string | null;
              }[]
            | null;
          tracking?: {
            eventName?: string | null;
            eventPayload?:
              | {
                  [k: string]: unknown;
                }
              | unknown[]
              | string
              | number
              | boolean
              | null;
          };
        };
        id?: string | null;
        blockName?: string | null;
        blockType: 'imageGalleryStripV1';
      }
    | {
        heading: {
          root: {
            type: string;
            children: {
              type: any;
              version: number;
              [k: string]: unknown;
            }[];
            direction: ('ltr' | 'rtl') | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
          };
          [k: string]: unknown;
        };
        layout?: ('grid' | 'slider' | 'single') | null;
        /**
         * Rating platforms (e.g. Tripadvisor, Google) to show at the top.
         */
        ratings?:
          | {
              'platform-icon': number | Media;
              'platform-name'?: string | null;
              score: string;
              label?: string | null;
              id?: string | null;
            }[]
          | null;
        items: {
          quote: {
            root: {
              type: string;
              children: {
                type: any;
                version: number;
                [k: string]: unknown;
              }[];
              direction: ('ltr' | 'rtl') | null;
              format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
              indent: number;
              version: number;
            };
            [k: string]: unknown;
          };
          author: string;
          /**
           * Rating given by the author (1-5 stars)
           */
          rating?: number | null;
          role?: string | null;
          company?: string | null;
          avatar?: (number | null) | Media;
          id?: string | null;
        }[];
        meta?: {
          /**
           * Optional background image for the block section.
           */
          backgroundImage?: (number | null) | Media;
          /**
           * Used for #hash navigation (e.g. send-request).
           */
          anchorId?: string | null;
          /**
           * Optional classes applied to this block wrapper.
           */
          className?: string | null;
          /**
           * Key/value pairs rendered as data-* attributes.
           */
          dataAttributes?:
            | {
                key: string;
                value?: string | null;
                id?: string | null;
              }[]
            | null;
          tracking?: {
            eventName?: string | null;
            eventPayload?:
              | {
                  [k: string]: unknown;
                }
              | unknown[]
              | string
              | number
              | boolean
              | null;
          };
        };
        id?: string | null;
        blockName?: string | null;
        blockType: 'testimonial';
      }
    | FormBlock
    | MediaBlock
  )[];
  meta?: {
    title?: string | null;
    /**
     * Maximum upload file size: 12MB. Recommended file size for images is <500KB.
     */
    image?: (number | null) | Media;
    description?: string | null;
    /**
     * Optional page-level snippets. These are returned along with global snippets in the render API.
     */
    snippets?: {
      /**
       * Injected inside <head>.
       */
      head?: string | null;
      /**
       * Injected immediately after <body> opens.
       */
      bodyTop?: string | null;
      /**
       * Injected before </body> closes.
       */
      bodyBottom?: string | null;
    };
  };
  publishedAt?: string | null;
  layoutSettings?: {
    headerVariant?: ('inherit' | 'default' | 'landing' | 'shared') | null;
    headerOverride?: (number | null) | SharedLayout;
    footerVariant?: ('inherit' | 'default' | 'landing' | 'shared') | null;
    footerOverride?: (number | null) | SharedLayout;
    /**
     * Select a CTA to appear as a floating button from the second section onwards.
     */
    floatingCTA?: (number | null) | SharedCta;
  };
  /**
   * When enabled, the slug will auto-generate from the title field on save and autosave.
   */
  generateSlug?: boolean | null;
  slug: string;
  updatedAt: string;
  createdAt: string;
  _status?: ('draft' | 'published') | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "media".
 */
export interface Media {
  id: number;
  /**
   * Required for accessibility and SEO.
   */
  alt?: string | null;
  caption?: {
    root: {
      type: string;
      children: {
        type: any;
        version: number;
        [k: string]: unknown;
      }[];
      direction: ('ltr' | 'rtl') | null;
      format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
      indent: number;
      version: number;
    };
    [k: string]: unknown;
  } | null;
  prefix?: string | null;
  folder?: (number | null) | FolderInterface;
  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;
  sizes?: {
    thumbnail?: {
      url?: string | null;
      width?: number | null;
      height?: number | null;
      mimeType?: string | null;
      filesize?: number | null;
      filename?: string | null;
    };
    square?: {
      url?: string | null;
      width?: number | null;
      height?: number | null;
      mimeType?: string | null;
      filesize?: number | null;
      filename?: string | null;
    };
    small?: {
      url?: string | null;
      width?: number | null;
      height?: number | null;
      mimeType?: string | null;
      filesize?: number | null;
      filename?: string | null;
    };
    medium?: {
      url?: string | null;
      width?: number | null;
      height?: number | null;
      mimeType?: string | null;
      filesize?: number | null;
      filename?: string | null;
    };
    large?: {
      url?: string | null;
      width?: number | null;
      height?: number | null;
      mimeType?: string | null;
      filesize?: number | null;
      filename?: string | null;
    };
    xlarge?: {
      url?: string | null;
      width?: number | null;
      height?: number | null;
      mimeType?: string | null;
      filesize?: number | null;
      filename?: string | null;
    };
    og?: {
      url?: string | null;
      width?: number | null;
      height?: number | null;
      mimeType?: string | null;
      filesize?: number | null;
      filename?: string | null;
    };
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-folders".
 */
export interface FolderInterface {
  id: number;
  name: string;
  folder?: (number | null) | FolderInterface;
  documentsAndFolders?: {
    docs?: (
      | {
          relationTo?: 'payload-folders';
          value: number | FolderInterface;
        }
      | {
          relationTo?: 'media';
          value: number | Media;
        }
    )[];
    hasNextPage?: boolean;
    totalDocs?: number;
  };
  folderType?: 'media'[] | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "forms".
 */
export interface Form {
  id: number;
  /**
   * This text will appear below the form title on the website.
   */
  description?: string | null;
  title: string;
  fields?:
    | (
        | {
            name: string;
            label?: string | null;
            width?: number | null;
            required?: boolean | null;
            defaultValue?: boolean | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'checkbox';
          }
        | {
            name: string;
            label?: string | null;
            width?: number | null;
            required?: boolean | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'country';
          }
        | {
            name: string;
            label?: string | null;
            width?: number | null;
            required?: boolean | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'email';
          }
        | {
            message?: {
              root: {
                type: string;
                children: {
                  type: any;
                  version: number;
                  [k: string]: unknown;
                }[];
                direction: ('ltr' | 'rtl') | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
              };
              [k: string]: unknown;
            } | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'message';
          }
        | {
            name: string;
            label?: string | null;
            width?: number | null;
            defaultValue?: number | null;
            required?: boolean | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'number';
          }
        | {
            name: string;
            label?: string | null;
            width?: number | null;
            defaultValue?: string | null;
            placeholder?: string | null;
            options?:
              | {
                  label: string;
                  value: string;
                  id?: string | null;
                }[]
              | null;
            required?: boolean | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'select';
          }
        | {
            name: string;
            label?: string | null;
            width?: number | null;
            required?: boolean | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'state';
          }
        | {
            name: string;
            label?: string | null;
            width?: number | null;
            defaultValue?: string | null;
            required?: boolean | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'text';
          }
        | {
            name: string;
            label?: string | null;
            width?: number | null;
            defaultValue?: string | null;
            required?: boolean | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'textarea';
          }
        | {
            /**
             * API key (e.g. phone). Do not change after launch.
             */
            name: string;
            label: string;
            required?: boolean | null;
            /**
             * ISO country code (e.g. IN, GB)
             */
            defaultCountry?: string | null;
            width?: ('100' | '50') | null;
            id?: string | null;
            blockName?: string | null;
            blockType: 'phone';
          }
      )[]
    | null;
  submitButtonLabel?: string | null;
  /**
   * Optional HTML id attribute for the submit button (e.g. "scilly-submit-btn").
   */
  submitButtonId?: string | null;
  /**
   * Choose whether to display an on-page message or redirect to a different page after they submit the form.
   */
  confirmationType?: ('message' | 'redirect') | null;
  confirmationMessage?: {
    root: {
      type: string;
      children: {
        type: any;
        version: number;
        [k: string]: unknown;
      }[];
      direction: ('ltr' | 'rtl') | null;
      format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
      indent: number;
      version: number;
    };
    [k: string]: unknown;
  } | null;
  /**
   * Message after successful submission.
   */
  successMessage?: string | null;
  redirect?: {
    redirectType: 'external' | 'internal';
    url?: string | null;
    slug?: string | null;
    head?: string | null;
    bodyTop?: string | null;
    bodyBottom?: string | null;
    openInNewTab?: boolean | null;
  };
  /**
   * Send custom emails when the form submits. Use comma separated lists to send the same email to multiple recipients. To reference a value from this form, wrap that field's name with double curly brackets, i.e. {{firstName}}. You can use a wildcard {{*}} to output all data and {{*:table}} to format it as an HTML table in the email.
   */
  emails?:
    | {
        emailTo?: string | null;
        cc?: string | null;
        bcc?: string | null;
        replyTo?: string | null;
        emailFrom?: string | null;
        subject: string;
        messageFormat: 'richText' | 'html';
        /**
         * Enter the message that should be sent in this email.
         */
        message?: {
          root: {
            type: string;
            children: {
              type: any;
              version: number;
              [k: string]: unknown;
            }[];
            direction: ('ltr' | 'rtl') | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
          };
          [k: string]: unknown;
        } | null;
        /**
         * Paste full HTML. Use {{fieldName}}, {{*}} or {{*:table}} for form data.
         */
        messageHTML?: string | null;
        id?: string | null;
      }[]
    | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "FormBlock".
 */
export interface FormBlock {
  form: number | Form;
  enableIntro?: boolean | null;
  introContent?: {
    root: {
      type: string;
      children: {
        type: any;
        version: number;
        [k: string]: unknown;
      }[];
      direction: ('ltr' | 'rtl') | null;
      format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
      indent: number;
      version: number;
    };
    [k: string]: unknown;
  } | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'formBlock';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "MediaBlock".
 */
export interface MediaBlock {
  media: number | Media;
  id?: string | null;
  blockName?: string | null;
  blockType: 'mediaBlock';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "shared-layouts".
 */
export interface SharedLayout {
  id: number;
  title: string;
  type: 'header' | 'footer';
  headerConfig?: {
    variant: 'default' | 'landing';
    logo: number | Media;
    navItems?:
      | {
          label: string;
          href: string;
          openInNewTab?: boolean | null;
          id?: string | null;
        }[]
      | null;
    landingCTA?: {
      label?: string | null;
      href?: string | null;
      /**
       * Optional HTML id attribute for tracking or scroll targeting (e.g. "header-book-now").
       */
      ctaId?: string | null;
    };
  };
  footerConfig?: {
    variant: 'default' | 'landing' | 'campaign';
    copyright?: string | null;
    linkColumns?:
      | {
          heading: string;
          links?:
            | {
                label: string;
                href: string;
                openInNewTab?: boolean | null;
                id?: string | null;
              }[]
            | null;
          id?: string | null;
        }[]
      | null;
    legalLinks?:
      | {
          label: string;
          href: string;
          id?: string | null;
        }[]
      | null;
    newsletter?: {
      heading?: string | null;
      description?: string | null;
      /**
       * Select the form to display in the newsletter section.
       */
      form: number | Form;
    };
    socialLinks?:
      | {
          platform: 'facebook' | 'instagram' | 'twitter' | 'linkedin' | 'youtube';
          url: string;
          id?: string | null;
        }[]
      | null;
    appLinks?: {
      appLabel?: string | null;
      iosUrl?: string | null;
      androidUrl?: string | null;
    };
  };
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "shared-ctas".
 */
export interface SharedCta {
  id: number;
  title: string;
  label: string;
  href: string;
  style?: ('primary' | 'outline') | null;
  /**
   * Optional HTML id attribute for tracking or scroll targeting (e.g. "hero-book-now").
   */
  ctaId?: string | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "users".
 */
export interface User {
  id: number;
  name?: string | null;
  roles: ('admin' | 'editor' | 'viewer')[];
  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;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "audit-logs".
 */
export interface AuditLog {
  id: number;
  action: 'create' | 'update' | 'delete';
  entityType: 'collection' | 'global';
  entity: string;
  docId?: string | null;
  user?: (number | null) | User;
  userName?: string | null;
  userEmail?: string | null;
  ip?: string | null;
  data?:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "redirects".
 */
export interface Redirect {
  id: number;
  from: string;
  to?: {
    type?: ('reference' | 'custom') | null;
    reference?: {
      relationTo: 'pages';
      value: number | Page;
    } | null;
    url?: string | null;
  };
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "form-submissions".
 */
export interface FormSubmission {
  id: number;
  form: number | Form;
  submissionData?:
    | {
        field: string;
        value: string;
        id?: string | null;
      }[]
    | null;
  firstName?: string | null;
  lastName?: string | null;
  email?: string | null;
  recaptchaToken?: string | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * 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-jobs".
 */
export interface PayloadJob {
  id: number;
  /**
   * Input data provided to the job
   */
  input?:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
  taskStatus?:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
  completedAt?: string | null;
  totalTried?: number | null;
  /**
   * If hasError is true this job will not be retried
   */
  hasError?: boolean | null;
  /**
   * If hasError is true, this is the error that caused it
   */
  error?:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
  /**
   * Task execution log
   */
  log?:
    | {
        executedAt: string;
        completedAt: string;
        taskSlug: 'inline' | 'schedulePublish';
        taskID: string;
        input?:
          | {
              [k: string]: unknown;
            }
          | unknown[]
          | string
          | number
          | boolean
          | null;
        output?:
          | {
              [k: string]: unknown;
            }
          | unknown[]
          | string
          | number
          | boolean
          | null;
        state: 'failed' | 'succeeded';
        error?:
          | {
              [k: string]: unknown;
            }
          | unknown[]
          | string
          | number
          | boolean
          | null;
        id?: string | null;
      }[]
    | null;
  taskSlug?: ('inline' | 'schedulePublish') | null;
  queue?: string | null;
  waitUntil?: string | null;
  processing?: boolean | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-locked-documents".
 */
export interface PayloadLockedDocument {
  id: number;
  document?:
    | ({
        relationTo: 'pages';
        value: number | Page;
      } | null)
    | ({
        relationTo: 'media';
        value: number | Media;
      } | null)
    | ({
        relationTo: 'users';
        value: number | User;
      } | null)
    | ({
        relationTo: 'audit-logs';
        value: number | AuditLog;
      } | null)
    | ({
        relationTo: 'shared-layouts';
        value: number | SharedLayout;
      } | null)
    | ({
        relationTo: 'shared-ctas';
        value: number | SharedCta;
      } | null)
    | ({
        relationTo: 'redirects';
        value: number | Redirect;
      } | null)
    | ({
        relationTo: 'forms';
        value: number | Form;
      } | null)
    | ({
        relationTo: 'form-submissions';
        value: number | FormSubmission;
      } | null)
    | ({
        relationTo: 'payload-folders';
        value: number | FolderInterface;
      } | 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` "pages_select".
 */
export interface PagesSelect<T extends boolean = true> {
  title?: T;
  layout?:
    | T
    | {
        heroOfferV1?:
          | T
          | {
              variant?: T;
              desktopImage?: T;
              mobileImage?: T;
              headline?: T;
              subheadline?: T;
              price?:
                | T
                | {
                    prefix?: T;
                    amount?: T;
                    suffix?: T;
                  };
              inclusionText?: T;
              highlights?:
                | T
                | {
                    icon?: T;
                    label?: T;
                    id?: T;
                  };
              ctas?:
                | T
                | {
                    label?: T;
                    href?: T;
                    style?: T;
                    ctaId?: T;
                    id?: T;
                  };
              footerText?: T;
              expiresAt?: T;
              meta?:
                | T
                | {
                    backgroundImage?: T;
                    anchorId?: T;
                    className?: T;
                    dataAttributes?:
                      | T
                      | {
                          key?: T;
                          value?: T;
                          id?: T;
                        };
                    tracking?:
                      | T
                      | {
                          eventName?: T;
                          eventPayload?: T;
                        };
                  };
              id?: T;
              blockName?: T;
            };
        richTextV1?:
          | T
          | {
              content?: T;
              meta?:
                | T
                | {
                    backgroundImage?: T;
                    anchorId?: T;
                    className?: T;
                    dataAttributes?:
                      | T
                      | {
                          key?: T;
                          value?: T;
                          id?: T;
                        };
                    tracking?:
                      | T
                      | {
                          eventName?: T;
                          eventPayload?: T;
                        };
                  };
              id?: T;
              blockName?: T;
            };
        contentListV1?:
          | T
          | {
              heading?: T;
              intro?: T;
              ornament?: T;
              variant?: T;
              ctas?:
                | T
                | {
                    label?: T;
                    href?: T;
                    style?: T;
                    ctaId?: T;
                    id?: T;
                  };
              items?:
                | T
                | {
                    image?: T;
                    icon?: T;
                    eyebrow?: T;
                    title?: T;
                    priceLine?: T;
                    subline?: T;
                    body?: T;
                    cta?:
                      | T
                      | {
                          label?: T;
                          href?: T;
                          ctaId?: T;
                        };
                    id?: T;
                  };
              meta?:
                | T
                | {
                    backgroundImage?: T;
                    anchorId?: T;
                    className?: T;
                    dataAttributes?:
                      | T
                      | {
                          key?: T;
                          value?: T;
                          id?: T;
                        };
                    tracking?:
                      | T
                      | {
                          eventName?: T;
                          eventPayload?: T;
                        };
                  };
              id?: T;
              blockName?: T;
            };
        ctaBannerV1?:
          | T
          | {
              headline?: T;
              body?: T;
              style?: T;
              ctas?:
                | T
                | {
                    label?: T;
                    href?: T;
                    style?: T;
                    ctaId?: T;
                    id?: T;
                  };
              meta?:
                | T
                | {
                    backgroundImage?: T;
                    anchorId?: T;
                    className?: T;
                    dataAttributes?:
                      | T
                      | {
                          key?: T;
                          value?: T;
                          id?: T;
                        };
                    tracking?:
                      | T
                      | {
                          eventName?: T;
                          eventPayload?: T;
                        };
                  };
              id?: T;
              blockName?: T;
            };
        leadFormV1?:
          | T
          | {
              heading?: T;
              description?: T;
              form?: T;
              hiddenFields?:
                | T
                | {
                    name?: T;
                    value?: T;
                    id?: T;
                  };
              meta?:
                | T
                | {
                    backgroundImage?: T;
                    anchorId?: T;
                    className?: T;
                    dataAttributes?:
                      | T
                      | {
                          key?: T;
                          value?: T;
                          id?: T;
                        };
                    tracking?:
                      | T
                      | {
                          eventName?: T;
                          eventPayload?: T;
                        };
                  };
              id?: T;
              blockName?: T;
            };
        imageGalleryStripV1?:
          | T
          | {
              images?:
                | T
                | {
                    image?: T;
                    alt?: T;
                    id?: T;
                  };
              meta?:
                | T
                | {
                    backgroundImage?: T;
                    anchorId?: T;
                    className?: T;
                    dataAttributes?:
                      | T
                      | {
                          key?: T;
                          value?: T;
                          id?: T;
                        };
                    tracking?:
                      | T
                      | {
                          eventName?: T;
                          eventPayload?: T;
                        };
                  };
              id?: T;
              blockName?: T;
            };
        testimonial?:
          | T
          | {
              heading?: T;
              layout?: T;
              ratings?:
                | T
                | {
                    'platform-icon'?: T;
                    'platform-name'?: T;
                    score?: T;
                    label?: T;
                    id?: T;
                  };
              items?:
                | T
                | {
                    quote?: T;
                    author?: T;
                    rating?: T;
                    role?: T;
                    company?: T;
                    avatar?: T;
                    id?: T;
                  };
              meta?:
                | T
                | {
                    backgroundImage?: T;
                    anchorId?: T;
                    className?: T;
                    dataAttributes?:
                      | T
                      | {
                          key?: T;
                          value?: T;
                          id?: T;
                        };
                    tracking?:
                      | T
                      | {
                          eventName?: T;
                          eventPayload?: T;
                        };
                  };
              id?: T;
              blockName?: T;
            };
        formBlock?: T | FormBlockSelect<T>;
        mediaBlock?: T | MediaBlockSelect<T>;
      };
  meta?:
    | T
    | {
        title?: T;
        image?: T;
        description?: T;
        snippets?:
          | T
          | {
              head?: T;
              bodyTop?: T;
              bodyBottom?: T;
            };
      };
  publishedAt?: T;
  layoutSettings?:
    | T
    | {
        headerVariant?: T;
        headerOverride?: T;
        footerVariant?: T;
        footerOverride?: T;
        floatingCTA?: T;
      };
  generateSlug?: T;
  slug?: T;
  updatedAt?: T;
  createdAt?: T;
  _status?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "FormBlock_select".
 */
export interface FormBlockSelect<T extends boolean = true> {
  form?: T;
  enableIntro?: T;
  introContent?: T;
  id?: T;
  blockName?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "MediaBlock_select".
 */
export interface MediaBlockSelect<T extends boolean = true> {
  media?: T;
  id?: T;
  blockName?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "media_select".
 */
export interface MediaSelect<T extends boolean = true> {
  alt?: T;
  caption?: T;
  prefix?: T;
  folder?: T;
  updatedAt?: T;
  createdAt?: T;
  url?: T;
  thumbnailURL?: T;
  filename?: T;
  mimeType?: T;
  filesize?: T;
  width?: T;
  height?: T;
  focalX?: T;
  focalY?: T;
  sizes?:
    | T
    | {
        thumbnail?:
          | T
          | {
              url?: T;
              width?: T;
              height?: T;
              mimeType?: T;
              filesize?: T;
              filename?: T;
            };
        square?:
          | T
          | {
              url?: T;
              width?: T;
              height?: T;
              mimeType?: T;
              filesize?: T;
              filename?: T;
            };
        small?:
          | T
          | {
              url?: T;
              width?: T;
              height?: T;
              mimeType?: T;
              filesize?: T;
              filename?: T;
            };
        medium?:
          | T
          | {
              url?: T;
              width?: T;
              height?: T;
              mimeType?: T;
              filesize?: T;
              filename?: T;
            };
        large?:
          | T
          | {
              url?: T;
              width?: T;
              height?: T;
              mimeType?: T;
              filesize?: T;
              filename?: T;
            };
        xlarge?:
          | T
          | {
              url?: T;
              width?: T;
              height?: T;
              mimeType?: T;
              filesize?: T;
              filename?: T;
            };
        og?:
          | T
          | {
              url?: T;
              width?: T;
              height?: T;
              mimeType?: T;
              filesize?: T;
              filename?: T;
            };
      };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "users_select".
 */
export interface UsersSelect<T extends boolean = true> {
  name?: T;
  roles?: T;
  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` "audit-logs_select".
 */
export interface AuditLogsSelect<T extends boolean = true> {
  action?: T;
  entityType?: T;
  entity?: T;
  docId?: T;
  user?: T;
  userName?: T;
  userEmail?: T;
  ip?: T;
  data?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "shared-layouts_select".
 */
export interface SharedLayoutsSelect<T extends boolean = true> {
  title?: T;
  type?: T;
  headerConfig?:
    | T
    | {
        variant?: T;
        logo?: T;
        navItems?:
          | T
          | {
              label?: T;
              href?: T;
              openInNewTab?: T;
              id?: T;
            };
        landingCTA?:
          | T
          | {
              label?: T;
              href?: T;
              ctaId?: T;
            };
      };
  footerConfig?:
    | T
    | {
        variant?: T;
        copyright?: T;
        linkColumns?:
          | T
          | {
              heading?: T;
              links?:
                | T
                | {
                    label?: T;
                    href?: T;
                    openInNewTab?: T;
                    id?: T;
                  };
              id?: T;
            };
        legalLinks?:
          | T
          | {
              label?: T;
              href?: T;
              id?: T;
            };
        newsletter?:
          | T
          | {
              heading?: T;
              description?: T;
              form?: T;
            };
        socialLinks?:
          | T
          | {
              platform?: T;
              url?: T;
              id?: T;
            };
        appLinks?:
          | T
          | {
              appLabel?: T;
              iosUrl?: T;
              androidUrl?: T;
            };
      };
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "shared-ctas_select".
 */
export interface SharedCtasSelect<T extends boolean = true> {
  title?: T;
  label?: T;
  href?: T;
  style?: T;
  ctaId?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "redirects_select".
 */
export interface RedirectsSelect<T extends boolean = true> {
  from?: T;
  to?:
    | T
    | {
        type?: T;
        reference?: T;
        url?: T;
      };
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "forms_select".
 */
export interface FormsSelect<T extends boolean = true> {
  description?: T;
  title?: T;
  fields?:
    | T
    | {
        checkbox?:
          | T
          | {
              name?: T;
              label?: T;
              width?: T;
              required?: T;
              defaultValue?: T;
              id?: T;
              blockName?: T;
            };
        country?:
          | T
          | {
              name?: T;
              label?: T;
              width?: T;
              required?: T;
              id?: T;
              blockName?: T;
            };
        email?:
          | T
          | {
              name?: T;
              label?: T;
              width?: T;
              required?: T;
              id?: T;
              blockName?: T;
            };
        message?:
          | T
          | {
              message?: T;
              id?: T;
              blockName?: T;
            };
        number?:
          | T
          | {
              name?: T;
              label?: T;
              width?: T;
              defaultValue?: T;
              required?: T;
              id?: T;
              blockName?: T;
            };
        select?:
          | T
          | {
              name?: T;
              label?: T;
              width?: T;
              defaultValue?: T;
              placeholder?: T;
              options?:
                | T
                | {
                    label?: T;
                    value?: T;
                    id?: T;
                  };
              required?: T;
              id?: T;
              blockName?: T;
            };
        state?:
          | T
          | {
              name?: T;
              label?: T;
              width?: T;
              required?: T;
              id?: T;
              blockName?: T;
            };
        text?:
          | T
          | {
              name?: T;
              label?: T;
              width?: T;
              defaultValue?: T;
              required?: T;
              id?: T;
              blockName?: T;
            };
        textarea?:
          | T
          | {
              name?: T;
              label?: T;
              width?: T;
              defaultValue?: T;
              required?: T;
              id?: T;
              blockName?: T;
            };
        phone?:
          | T
          | {
              name?: T;
              label?: T;
              required?: T;
              defaultCountry?: T;
              width?: T;
              id?: T;
              blockName?: T;
            };
      };
  submitButtonLabel?: T;
  submitButtonId?: T;
  confirmationType?: T;
  confirmationMessage?: T;
  successMessage?: T;
  redirect?:
    | T
    | {
        redirectType?: T;
        url?: T;
        slug?: T;
        head?: T;
        bodyTop?: T;
        bodyBottom?: T;
        openInNewTab?: T;
      };
  emails?:
    | T
    | {
        emailTo?: T;
        cc?: T;
        bcc?: T;
        replyTo?: T;
        emailFrom?: T;
        subject?: T;
        messageFormat?: T;
        message?: T;
        messageHTML?: T;
        id?: T;
      };
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "form-submissions_select".
 */
export interface FormSubmissionsSelect<T extends boolean = true> {
  form?: T;
  submissionData?:
    | T
    | {
        field?: T;
        value?: T;
        id?: T;
      };
  firstName?: T;
  lastName?: T;
  email?: T;
  recaptchaToken?: 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` "payload-jobs_select".
 */
export interface PayloadJobsSelect<T extends boolean = true> {
  input?: T;
  taskStatus?: T;
  completedAt?: T;
  totalTried?: T;
  hasError?: T;
  error?: T;
  log?:
    | T
    | {
        executedAt?: T;
        completedAt?: T;
        taskSlug?: T;
        taskID?: T;
        input?: T;
        output?: T;
        state?: T;
        error?: T;
        id?: T;
      };
  taskSlug?: T;
  queue?: T;
  waitUntil?: T;
  processing?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-folders_select".
 */
export interface PayloadFoldersSelect<T extends boolean = true> {
  name?: T;
  folder?: T;
  documentsAndFolders?: T;
  folderType?: T;
  updatedAt?: T;
  createdAt?: 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` "header".
 */
export interface Header {
  id: number;
  variant: 'default' | 'landing';
  logo: number | Media;
  navItems?:
    | {
        label: string;
        href: string;
        openInNewTab?: boolean | null;
        id?: string | null;
      }[]
    | null;
  landingCTA?: {
    label?: string | null;
    href?: string | null;
    /**
     * Optional HTML id attribute for tracking or scroll targeting (e.g. "header-book-now").
     */
    ctaId?: string | null;
  };
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "footer".
 */
export interface Footer {
  id: number;
  variant: 'default' | 'landing' | 'campaign';
  copyright?: string | null;
  linkColumns?:
    | {
        heading: string;
        links?:
          | {
              label: string;
              href: string;
              openInNewTab?: boolean | null;
              id?: string | null;
            }[]
          | null;
        id?: string | null;
      }[]
    | null;
  legalLinks?:
    | {
        label: string;
        href: string;
        id?: string | null;
      }[]
    | null;
  newsletter?: {
    heading?: string | null;
    description?: string | null;
    /**
     * Select the form to display in the newsletter section.
     */
    form: number | Form;
  };
  socialLinks?:
    | {
        platform: 'facebook' | 'instagram' | 'twitter' | 'linkedin' | 'youtube';
        url: string;
        id?: string | null;
      }[]
    | null;
  appLinks?: {
    appLabel?: string | null;
    iosUrl?: string | null;
    androidUrl?: string | null;
  };
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "scripts".
 */
export interface Script {
  id: number;
  /**
   * Global snippets are applied on every page. Page-level snippets can be added from each page SEO tab.
   */
  snippets?: {
    /**
     * Injected inside <head>.
     */
    head?: string | null;
    /**
     * Injected immediately after <body> opens.
     */
    bodyTop?: string | null;
    /**
     * Injected before </body> closes.
     */
    bodyBottom?: string | null;
  };
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "header_select".
 */
export interface HeaderSelect<T extends boolean = true> {
  variant?: T;
  logo?: T;
  navItems?:
    | T
    | {
        label?: T;
        href?: T;
        openInNewTab?: T;
        id?: T;
      };
  landingCTA?:
    | T
    | {
        label?: T;
        href?: T;
        ctaId?: T;
      };
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "footer_select".
 */
export interface FooterSelect<T extends boolean = true> {
  variant?: T;
  copyright?: T;
  linkColumns?:
    | T
    | {
        heading?: T;
        links?:
          | T
          | {
              label?: T;
              href?: T;
              openInNewTab?: T;
              id?: T;
            };
        id?: T;
      };
  legalLinks?:
    | T
    | {
        label?: T;
        href?: T;
        id?: T;
      };
  newsletter?:
    | T
    | {
        heading?: T;
        description?: T;
        form?: T;
      };
  socialLinks?:
    | T
    | {
        platform?: T;
        url?: T;
        id?: T;
      };
  appLinks?:
    | T
    | {
        appLabel?: T;
        iosUrl?: T;
        androidUrl?: T;
      };
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "scripts_select".
 */
export interface ScriptsSelect<T extends boolean = true> {
  snippets?:
    | T
    | {
        head?: T;
        bodyTop?: T;
        bodyBottom?: T;
      };
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "TaskSchedulePublish".
 */
export interface TaskSchedulePublish {
  input: {
    type?: ('publish' | 'unpublish') | null;
    locale?: string | null;
    doc?: {
      relationTo: 'pages';
      value: number | Page;
    } | null;
    global?: string | null;
    user?: (number | null) | User;
  };
  output?: unknown;
}
/**
 * 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 {}
}