/* 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: {
    courses: Course;
    leads: Lead;
    media: Media;
    users: User;
    'payload-kv': PayloadKv;
    'payload-locked-documents': PayloadLockedDocument;
    'payload-preferences': PayloadPreference;
    'payload-migrations': PayloadMigration;
  };
  collectionsJoins: {};
  collectionsSelect: {
    courses: CoursesSelect<false> | CoursesSelect<true>;
    leads: LeadsSelect<false> | LeadsSelect<true>;
    media: MediaSelect<false> | MediaSelect<true>;
    users: UsersSelect<false> | UsersSelect<true>;
    'payload-kv': PayloadKvSelect<false> | PayloadKvSelect<true>;
    'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
    'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
    'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
  };
  db: {
    defaultIDType: number;
  };
  fallbackLocale: ('false' | 'none' | 'null') | false | null | ('ar' | 'en') | ('ar' | 'en')[];
  globals: {
    home: Home;
    catalogue: Catalogue;
    categories: Category;
    pricing: Pricing;
    about: About;
    contactpage: Contactpage;
    privacy: Privacy;
    terms: Term;
    whyus: Whyus;
    settings: Setting;
  };
  globalsSelect: {
    home: HomeSelect<false> | HomeSelect<true>;
    catalogue: CatalogueSelect<false> | CatalogueSelect<true>;
    categories: CategoriesSelect<false> | CategoriesSelect<true>;
    pricing: PricingSelect<false> | PricingSelect<true>;
    about: AboutSelect<false> | AboutSelect<true>;
    contactpage: ContactpageSelect<false> | ContactpageSelect<true>;
    privacy: PrivacySelect<false> | PrivacySelect<true>;
    terms: TermsSelect<false> | TermsSelect<true>;
    whyus: WhyusSelect<false> | WhyusSelect<true>;
    settings: SettingsSelect<false> | SettingsSelect<true>;
  };
  locale: 'ar' | 'en';
  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` "courses".
 */
export interface Course {
  id: number;
  slug: string;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  status?: ('live' | 'partial' | 'soon') | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  order?: number | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  title?: string | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  titleShort?: string | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  tagline?: string | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  audience?: string | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  level?: string | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  instruction?: string | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached. The first two show on the course card.
   */
  facts?:
    | {
        text: string;
        id?: string | null;
      }[]
    | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  includes?:
    | {
        text: string;
        id?: string | null;
      }[]
    | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  outcomes?:
    | {
        text: string;
        id?: string | null;
      }[]
    | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  availability?: string | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  units?:
    | {
        n: number;
        name: string;
        kind?: ('lessons' | 'labs' | 'projects') | null;
        source?: ('book' | 'added') | null;
        lessons: number;
        /**
         * Leave empty when every lesson is part of the course itself.
         */
        book?: number | null;
        id?: string | null;
      }[]
    | null;
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached.
   */
  price?: {
    /**
     * The normal price. These three fields are read from the learning platform when the course has a link to it, because that is where payment happens; what is written here is used when the platform cannot be reached. Leave empty to show the note below instead of a price.
     */
    amount?: number | null;
    /**
     * With an end date, this price shows with the normal one struck through beside it. After the date the normal price returns on its own.
     */
    offer?: number | null;
    /**
     * The last day of the offer. That day is itself inside the offer.
     */
    offerEnds?: string | null;
    note?: string | null;
  };
  /**
   * Managed on the learning platform, in the course settings there. This is the copy the site uses if the platform cannot be reached. When set, the enrol button goes to the course on the learning platform (sign-up and InstaPay payment). Otherwise it goes to the interest form.
   */
  platformUrl?: string | null;
  poster?: (number | null) | Media;
  posterNote?: string | null;
  /**
   * A YouTube or platform link. When set, the preview image links to it.
   */
  videoUrl?: string | null;
  /**
   * They appear in the "free lessons" section of the course page. Tapping one opens it on the learning platform, where the video plays beside the lesson files and its practice.
   */
  freeLessons?:
    | {
        title: string;
        /**
         * For example 1-1. It shows above the title.
         */
        code?: string | null;
        videoUrl: string;
        /**
         * Optional. Tapping the lesson goes here. Left empty, it goes to the course on the platform.
         */
        platformUrl?: string | null;
        poster?: (number | null) | Media;
        id?: string | null;
      }[]
    | null;
  tone?: ('royal-700' | 'royal-800' | 'azure-700' | 'navy-900' | 'navy-700') | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "media".
 */
export interface Media {
  id: number;
  alt: string;
  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?: {
    card?: {
      url?: string | null;
      width?: number | null;
      height?: number | null;
      mimeType?: string | null;
      filesize?: number | null;
      filename?: string | null;
    };
    wide?: {
      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` "leads".
 */
export interface Lead {
  id: number;
  name: string;
  email: string;
  phone?: string | null;
  role?: string | null;
  course?: (number | null) | Course;
  /**
   * Kept with every request, so the course is known even when it was added on the platform and has no row here.
   */
  courseSlug?: string | null;
  note?: string | null;
  status?: ('new' | 'contacted' | 'enrolled' | 'closed') | null;
  locale?: ('ar' | 'en') | 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;
  updatedAt: string;
  createdAt: string;
  email: string;
  resetPasswordToken?: string | null;
  resetPasswordExpiration?: string | null;
  salt?: string | null;
  hash?: string | null;
  resetPasswordRequestedAt?: string | null;
  loginAttempts?: number | null;
  lockUntil?: string | null;
  sessions?:
    | {
        id: string;
        createdAt?: string | null;
        expiresAt: string;
      }[]
    | null;
  password?: string | null;
  collection: 'users';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-kv".
 */
export interface PayloadKv {
  id: number;
  key: string;
  data:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-locked-documents".
 */
export interface PayloadLockedDocument {
  id: number;
  document?:
    | ({
        relationTo: 'courses';
        value: number | Course;
      } | null)
    | ({
        relationTo: 'leads';
        value: number | Lead;
      } | null)
    | ({
        relationTo: 'media';
        value: number | Media;
      } | null)
    | ({
        relationTo: 'users';
        value: number | User;
      } | null);
  globalSlug?: string | null;
  user: {
    relationTo: 'users';
    value: number | User;
  };
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-preferences".
 */
export interface PayloadPreference {
  id: number;
  user: {
    relationTo: 'users';
    value: number | User;
  };
  key?: string | null;
  value?:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-migrations".
 */
export interface PayloadMigration {
  id: number;
  name?: string | null;
  batch?: number | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "courses_select".
 */
export interface CoursesSelect<T extends boolean = true> {
  slug?: T;
  status?: T;
  order?: T;
  title?: T;
  titleShort?: T;
  tagline?: T;
  audience?: T;
  level?: T;
  instruction?: T;
  facts?:
    | T
    | {
        text?: T;
        id?: T;
      };
  includes?:
    | T
    | {
        text?: T;
        id?: T;
      };
  outcomes?:
    | T
    | {
        text?: T;
        id?: T;
      };
  availability?: T;
  units?:
    | T
    | {
        n?: T;
        name?: T;
        kind?: T;
        source?: T;
        lessons?: T;
        book?: T;
        id?: T;
      };
  price?:
    | T
    | {
        amount?: T;
        offer?: T;
        offerEnds?: T;
        note?: T;
      };
  platformUrl?: T;
  poster?: T;
  posterNote?: T;
  videoUrl?: T;
  freeLessons?:
    | T
    | {
        title?: T;
        code?: T;
        videoUrl?: T;
        platformUrl?: T;
        poster?: T;
        id?: T;
      };
  tone?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "leads_select".
 */
export interface LeadsSelect<T extends boolean = true> {
  name?: T;
  email?: T;
  phone?: T;
  role?: T;
  course?: T;
  courseSlug?: T;
  note?: T;
  status?: T;
  locale?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "media_select".
 */
export interface MediaSelect<T extends boolean = true> {
  alt?: 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
    | {
        card?:
          | T
          | {
              url?: T;
              width?: T;
              height?: T;
              mimeType?: T;
              filesize?: T;
              filename?: T;
            };
        wide?:
          | 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;
  updatedAt?: T;
  createdAt?: T;
  email?: T;
  resetPasswordToken?: T;
  resetPasswordExpiration?: T;
  salt?: T;
  hash?: T;
  resetPasswordRequestedAt?: T;
  loginAttempts?: T;
  lockUntil?: T;
  sessions?:
    | T
    | {
        id?: T;
        createdAt?: T;
        expiresAt?: T;
      };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-kv_select".
 */
export interface PayloadKvSelect<T extends boolean = true> {
  key?: T;
  data?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-locked-documents_select".
 */
export interface PayloadLockedDocumentsSelect<T extends boolean = true> {
  document?: T;
  globalSlug?: T;
  user?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-preferences_select".
 */
export interface PayloadPreferencesSelect<T extends boolean = true> {
  user?: T;
  key?: T;
  value?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-migrations_select".
 */
export interface PayloadMigrationsSelect<T extends boolean = true> {
  name?: T;
  batch?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "home".
 */
export interface Home {
  id: number;
  seo: {
    title: string;
    description?: string | null;
  };
  eyebrow?: string | null;
  h1: string;
  h1Accent?: string | null;
  lead?: string | null;
  facts?:
    | {
        n: string;
        label?: string | null;
        id?: string | null;
      }[]
    | null;
  heroImage?: (number | null) | Media;
  /**
   * A short line on the corner of the hero art.
   */
  noteOne?: string | null;
  noteTwo?: string | null;
  browseCta?: string | null;
  categoriesCta?: string | null;
  bookTitle?: string | null;
  bookLead?: string | null;
  bookBarTitle?: string | null;
  bookBar?:
    | {
        n: string;
        label?: string | null;
        kind: 'book' | 'added' | 'lab' | 'project';
        id?: string | null;
      }[]
    | null;
  bookCode?: string | null;
  layersTitle?: string | null;
  layers?:
    | {
        badge: string;
        name: string;
        text?: string | null;
        plain?: boolean | null;
        id?: string | null;
      }[]
    | null;
  paths?: string | null;
  workTitle?: string | null;
  workLead?: string | null;
  stepsTitle?: string | null;
  steps?:
    | {
        n: string;
        title: string;
        text?: string | null;
        id?: string | null;
      }[]
    | null;
  lifeTitle?: string | null;
  lifeText?: string | null;
  lifeImage?: (number | null) | Media;
  lifeBoxes?:
    | {
        title: string;
        text?: string | null;
        id?: string | null;
      }[]
    | null;
  unitsTitle?: string | null;
  unitsLead?: string | null;
  unitsCourse?: (number | null) | Course;
  peopleTitle?: string | null;
  people?:
    | {
        name: string;
        text?: string | null;
        id?: string | null;
      }[]
    | null;
  catEyebrow?: string | null;
  catTitle?: string | null;
  catText?: string | null;
  catLink?: string | null;
  featuredEyebrow?: string | null;
  featuredLink?: string | null;
  whyEyebrow?: string | null;
  whyTitle?: string | null;
  why?:
    | {
        icon?: ('book' | 'target' | 'clock' | 'check' | 'layers' | 'ai') | null;
        title: string;
        text?: string | null;
        id?: string | null;
      }[]
    | null;
  coursesTitle?: string | null;
  coursesLead?: string | null;
  ctaTitle?: string | null;
  ctaLead?: string | null;
  faqTitle?: string | null;
  faq?:
    | {
        q: string;
        text?: string | null;
        id?: string | null;
      }[]
    | null;
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "catalogue".
 */
export interface Catalogue {
  id: number;
  seo: {
    title: string;
    description?: string | null;
  };
  h1: string;
  lead?: string | null;
  filters?: {
    search?: string | null;
    category?: string | null;
    level?: string | null;
    status?: string | null;
    all?: string | null;
    allLevels?: string | null;
    /**
     * Shown as “6 courses found” — write only “found”; the word “courses” is chosen by the number.
     */
    results?: string | null;
    sort?: string | null;
    sortDefault?: string | null;
    sortPrice?: string | null;
    empty?: string | null;
    page?: string | null;
  };
  count?: {
    one?: string | null;
    two?: string | null;
    few?: string | null;
    many?: string | null;
    /**
     * Used when the matching box is empty. In English this is the plural.
     */
    other?: string | null;
  };
  labels?: {
    back?: string | null;
    outcomes?: string | null;
    audience?: string | null;
    instruction?: string | null;
    level?: string | null;
    units?: string | null;
    unitsLead?: string | null;
    preview?: string | null;
    previewNote?: string | null;
    freeLessons?: string | null;
    freeLessonsNote?: string | null;
    watch?: string | null;
    lessonsWord?: string | null;
    labsWord?: string | null;
    projectsWord?: string | null;
    fromBook?: string | null;
    fromCore?: string | null;
    added?: string | null;
    addedUnit?: string | null;
    /**
     * Read by a screen reader only, so the struck-through figure is understood as the normal price.
     */
    priceWas?: string | null;
    /**
     * Write {date} where the date goes, for example: offer runs until {date}.
     */
    offerUntil?: string | null;
  };
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * The categories themselves come from the learning platform, and the count under each is worked out automatically. Only the page’s heading and intro are set here.
 *
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "categories".
 */
export interface Category {
  id: number;
  seo: {
    title: string;
    description?: string | null;
  };
  h1: string;
  lead?: string | null;
  featuredTitle?: string | null;
  featuredLead?: string | null;
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "pricing".
 */
export interface Pricing {
  id: number;
  seo: {
    title: string;
    description?: string | null;
  };
  h1: string;
  lead?: string | null;
  plansTitle?: string | null;
  plans?:
    | {
        name: string;
        text?: string | null;
        items?:
          | {
              text: string;
              id?: string | null;
            }[]
          | null;
        /**
         * Empty = the first course’s price and note.
         */
        price?: string | null;
        id?: string | null;
      }[]
    | null;
  formTitle?: string | null;
  formLead?: string | null;
  fields?: {
    name?: string | null;
    email?: string | null;
    phone?: string | null;
    role?: string | null;
    course?: string | null;
    note?: string | null;
  };
  roles?:
    | {
        label: string;
        id?: string | null;
      }[]
    | null;
  submit?: string | null;
  privacy?: string | null;
  sent?: string | null;
  invalid?: string | null;
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * The team cards come from the home page (tab “Units and team”).
 *
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "about".
 */
export interface About {
  id: number;
  seo: {
    title: string;
    description?: string | null;
  };
  h1: string;
  lead?: string | null;
  peopleTitle?: string | null;
  principlesTitle?: string | null;
  principles?:
    | {
        text: string;
        id?: string | null;
      }[]
    | null;
  sections?:
    | {
        title: string;
        text?: string | null;
        id?: string | null;
      }[]
    | null;
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "contactpage".
 */
export interface Contactpage {
  id: number;
  seo: {
    title: string;
    description?: string | null;
  };
  h1: string;
  lead?: string | null;
  formTitle?: string | null;
  formLead?: string | null;
  waysTitle?: string | null;
  reassure?: {
    title?: string | null;
    text?: string | null;
  };
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * The contact details (email and WhatsApp) come from Site settings, so do not write them here again.
 *
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "privacy".
 */
export interface Privacy {
  id: number;
  seo: {
    title: string;
    description?: string | null;
  };
  h1: string;
  /**
   * Shown under the heading. Change it whenever the text changes — it is what tells a visitor the page moved.
   */
  updated?: string | null;
  lead?: string | null;
  sections?:
    | {
        title: string;
        /**
         * An empty line between paragraphs. A line starting with “- ” becomes an item in a list.
         */
        text: string;
        id?: string | null;
      }[]
    | null;
  closing?: string | null;
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * The contact details (email and WhatsApp) come from Site settings, so do not write them here again.
 *
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "terms".
 */
export interface Term {
  id: number;
  seo: {
    title: string;
    description?: string | null;
  };
  h1: string;
  /**
   * Shown under the heading. Change it whenever the text changes — it is what tells a visitor the page moved.
   */
  updated?: string | null;
  lead?: string | null;
  sections?:
    | {
        title: string;
        /**
         * An empty line between paragraphs. A line starting with “- ” becomes an item in a list.
         */
        text: string;
        id?: string | null;
      }[]
    | null;
  closing?: string | null;
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * The page at /whyus. Every line must be true with no footnote under it: add a claim only once it works on the platform.
 *
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "whyus".
 */
export interface Whyus {
  id: number;
  seo: {
    title: string;
    description?: string | null;
  };
  kicker?: string | null;
  h1: string;
  lead?: string | null;
  steps?:
    | {
        label: string;
        id?: string | null;
      }[]
    | null;
  cardsTitle?: string | null;
  /**
   * With an odd number of cards, the last one spans the whole row.
   */
  cards?:
    | {
        title: string;
        line?: string | null;
        text?: string | null;
        id?: string | null;
      }[]
    | null;
  figures?:
    | {
        n: string;
        label?: string | null;
        id?: string | null;
      }[]
    | null;
  audienceTitle?: string | null;
  student?: {
    tag?: string | null;
    title?: string | null;
    text?: string | null;
  };
  teacher?: {
    tag?: string | null;
    title?: string | null;
    text?: string | null;
    points?:
      | {
          text: string;
          id?: string | null;
        }[]
      | null;
  };
  quotesTitle?: string | null;
  quotes?:
    | {
        text: string;
        id?: string | null;
      }[]
    | null;
  ctaTitle?: string | null;
  ctaLead?: string | null;
  ctaLabel?: string | null;
  /**
   * A page of this site starting with / (like /courses) or a full address starting with https://. Site links open in the page language automatically.
   */
  ctaHref?: string | null;
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "settings".
 */
export interface Setting {
  id: number;
  brandName: string;
  /**
   * One line above the menu on every page. Leave it empty and the strip is not shown at all.
   */
  banner?: string | null;
  contact?: {
    email?: string | null;
    phone?: string | null;
    /**
     * With the country code, for example 00201062163038. It is shown tidily, and a tap opens WhatsApp on a chat with us.
     */
    whatsapp?: string | null;
    /**
     * It is already typed when the chat opens; the visitor only presses send.
     */
    waText?: string | null;
    /**
     * Shown above the contact details in the footer and on the pricing page.
     */
    lead?: string | null;
    youtube?: string | null;
  };
  /**
   * For example https://learn.thinkera.academy. The header shows a sign-in button.
   */
  platformUrl?: string | null;
  /**
   * A page of this site starting with / (like /courses) or a full address starting with https://. Site links open in the page language automatically.
   */
  freeLessonHref: string;
  /**
   * Every new interest request is mailed here. Leave it empty to use NOTIFY_EMAIL from .env.
   */
  notifyEmail?: string | null;
  currency?: {
    code?: string | null;
    label?: string | null;
  };
  nav?:
    | {
        label: string;
        /**
         * A page of this site starting with / (like /courses) or a full address starting with https://. Site links open in the page language automatically.
         */
        href: string;
        id?: string | null;
      }[]
    | null;
  cta?: {
    free?: string | null;
    all?: string | null;
    primary?: string | null;
    enrol?: string | null;
    subscribe?: string | null;
    notify?: string | null;
    youtube?: string | null;
  };
  ui?: {
    langSwitch?: string | null;
    menu?: string | null;
    skip?: string | null;
    signIn?: string | null;
    light?: string | null;
    dark?: string | null;
    close?: string | null;
  };
  status?: {
    live?: string | null;
    partial?: string | null;
    soon?: string | null;
  };
  support?: {
    /**
     * When off, nothing at all is loaded from the support server.
     */
    enabled?: boolean | null;
    /**
     * For example https://chat.thinkera.academy — no trailing slash.
     */
    baseUrl?: string | null;
    /**
     * The token the support server issues per website. Not a secret — it appears in the page source — but it decides which inbox the messages land in.
     */
    websiteToken?: string | null;
  };
  chat?: {
    /**
     * This bubble was replaced by Live support above. The text is kept so it is not lost; editing it has no effect on the site.
     */
    title?: string | null;
    greeting?: string | null;
    items?:
      | {
          q: string;
          a: string;
          id?: string | null;
        }[]
      | null;
    placeholder?: string | null;
    send?: string | null;
    /**
     * It must make clear the message opens in WhatsApp and nobody answers inside the bubble.
     */
    disclaimer?: string | null;
  };
  footer?: {
    tagline?: string | null;
    coursesHeading?: string | null;
    academyHeading?: string | null;
    contactHeading?: string | null;
    socialHeading?: string | null;
    links?:
      | {
          label: string;
          /**
           * A page of this site starting with / (like /courses) or a full address starting with https://. Site links open in the page language automatically.
           */
          href: string;
          id?: string | null;
        }[]
      | null;
    rights?: string | null;
  };
  /**
   * Shown as icons in the footer of every page, in this order. Delete a row to remove its icon.
   */
  social?:
    | {
        network: 'facebook' | 'instagram' | 'linkedin' | 'youtube' | 'tiktok' | 'telegram' | 'twitter' | 'whatsapp';
        /**
         * The page’s full address, starting with https:// — a row with no address is not shown.
         */
        url: string;
        id?: string | null;
      }[]
    | null;
  updatedAt?: string | null;
  createdAt?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "home_select".
 */
export interface HomeSelect<T extends boolean = true> {
  seo?:
    | T
    | {
        title?: T;
        description?: T;
      };
  eyebrow?: T;
  h1?: T;
  h1Accent?: T;
  lead?: T;
  facts?:
    | T
    | {
        n?: T;
        label?: T;
        id?: T;
      };
  heroImage?: T;
  noteOne?: T;
  noteTwo?: T;
  browseCta?: T;
  categoriesCta?: T;
  bookTitle?: T;
  bookLead?: T;
  bookBarTitle?: T;
  bookBar?:
    | T
    | {
        n?: T;
        label?: T;
        kind?: T;
        id?: T;
      };
  bookCode?: T;
  layersTitle?: T;
  layers?:
    | T
    | {
        badge?: T;
        name?: T;
        text?: T;
        plain?: T;
        id?: T;
      };
  paths?: T;
  workTitle?: T;
  workLead?: T;
  stepsTitle?: T;
  steps?:
    | T
    | {
        n?: T;
        title?: T;
        text?: T;
        id?: T;
      };
  lifeTitle?: T;
  lifeText?: T;
  lifeImage?: T;
  lifeBoxes?:
    | T
    | {
        title?: T;
        text?: T;
        id?: T;
      };
  unitsTitle?: T;
  unitsLead?: T;
  unitsCourse?: T;
  peopleTitle?: T;
  people?:
    | T
    | {
        name?: T;
        text?: T;
        id?: T;
      };
  catEyebrow?: T;
  catTitle?: T;
  catText?: T;
  catLink?: T;
  featuredEyebrow?: T;
  featuredLink?: T;
  whyEyebrow?: T;
  whyTitle?: T;
  why?:
    | T
    | {
        icon?: T;
        title?: T;
        text?: T;
        id?: T;
      };
  coursesTitle?: T;
  coursesLead?: T;
  ctaTitle?: T;
  ctaLead?: T;
  faqTitle?: T;
  faq?:
    | T
    | {
        q?: T;
        text?: T;
        id?: T;
      };
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "catalogue_select".
 */
export interface CatalogueSelect<T extends boolean = true> {
  seo?:
    | T
    | {
        title?: T;
        description?: T;
      };
  h1?: T;
  lead?: T;
  filters?:
    | T
    | {
        search?: T;
        category?: T;
        level?: T;
        status?: T;
        all?: T;
        allLevels?: T;
        results?: T;
        sort?: T;
        sortDefault?: T;
        sortPrice?: T;
        empty?: T;
        page?: T;
      };
  count?:
    | T
    | {
        one?: T;
        two?: T;
        few?: T;
        many?: T;
        other?: T;
      };
  labels?:
    | T
    | {
        back?: T;
        outcomes?: T;
        audience?: T;
        instruction?: T;
        level?: T;
        units?: T;
        unitsLead?: T;
        preview?: T;
        previewNote?: T;
        freeLessons?: T;
        freeLessonsNote?: T;
        watch?: T;
        lessonsWord?: T;
        labsWord?: T;
        projectsWord?: T;
        fromBook?: T;
        fromCore?: T;
        added?: T;
        addedUnit?: T;
        priceWas?: T;
        offerUntil?: T;
      };
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "categories_select".
 */
export interface CategoriesSelect<T extends boolean = true> {
  seo?:
    | T
    | {
        title?: T;
        description?: T;
      };
  h1?: T;
  lead?: T;
  featuredTitle?: T;
  featuredLead?: T;
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "pricing_select".
 */
export interface PricingSelect<T extends boolean = true> {
  seo?:
    | T
    | {
        title?: T;
        description?: T;
      };
  h1?: T;
  lead?: T;
  plansTitle?: T;
  plans?:
    | T
    | {
        name?: T;
        text?: T;
        items?:
          | T
          | {
              text?: T;
              id?: T;
            };
        price?: T;
        id?: T;
      };
  formTitle?: T;
  formLead?: T;
  fields?:
    | T
    | {
        name?: T;
        email?: T;
        phone?: T;
        role?: T;
        course?: T;
        note?: T;
      };
  roles?:
    | T
    | {
        label?: T;
        id?: T;
      };
  submit?: T;
  privacy?: T;
  sent?: T;
  invalid?: T;
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "about_select".
 */
export interface AboutSelect<T extends boolean = true> {
  seo?:
    | T
    | {
        title?: T;
        description?: T;
      };
  h1?: T;
  lead?: T;
  peopleTitle?: T;
  principlesTitle?: T;
  principles?:
    | T
    | {
        text?: T;
        id?: T;
      };
  sections?:
    | T
    | {
        title?: T;
        text?: T;
        id?: T;
      };
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "contactpage_select".
 */
export interface ContactpageSelect<T extends boolean = true> {
  seo?:
    | T
    | {
        title?: T;
        description?: T;
      };
  h1?: T;
  lead?: T;
  formTitle?: T;
  formLead?: T;
  waysTitle?: T;
  reassure?:
    | T
    | {
        title?: T;
        text?: T;
      };
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "privacy_select".
 */
export interface PrivacySelect<T extends boolean = true> {
  seo?:
    | T
    | {
        title?: T;
        description?: T;
      };
  h1?: T;
  updated?: T;
  lead?: T;
  sections?:
    | T
    | {
        title?: T;
        text?: T;
        id?: T;
      };
  closing?: T;
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "terms_select".
 */
export interface TermsSelect<T extends boolean = true> {
  seo?:
    | T
    | {
        title?: T;
        description?: T;
      };
  h1?: T;
  updated?: T;
  lead?: T;
  sections?:
    | T
    | {
        title?: T;
        text?: T;
        id?: T;
      };
  closing?: T;
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "whyus_select".
 */
export interface WhyusSelect<T extends boolean = true> {
  seo?:
    | T
    | {
        title?: T;
        description?: T;
      };
  kicker?: T;
  h1?: T;
  lead?: T;
  steps?:
    | T
    | {
        label?: T;
        id?: T;
      };
  cardsTitle?: T;
  cards?:
    | T
    | {
        title?: T;
        line?: T;
        text?: T;
        id?: T;
      };
  figures?:
    | T
    | {
        n?: T;
        label?: T;
        id?: T;
      };
  audienceTitle?: T;
  student?:
    | T
    | {
        tag?: T;
        title?: T;
        text?: T;
      };
  teacher?:
    | T
    | {
        tag?: T;
        title?: T;
        text?: T;
        points?:
          | T
          | {
              text?: T;
              id?: T;
            };
      };
  quotesTitle?: T;
  quotes?:
    | T
    | {
        text?: T;
        id?: T;
      };
  ctaTitle?: T;
  ctaLead?: T;
  ctaLabel?: T;
  ctaHref?: T;
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "settings_select".
 */
export interface SettingsSelect<T extends boolean = true> {
  brandName?: T;
  banner?: T;
  contact?:
    | T
    | {
        email?: T;
        phone?: T;
        whatsapp?: T;
        waText?: T;
        lead?: T;
        youtube?: T;
      };
  platformUrl?: T;
  freeLessonHref?: T;
  notifyEmail?: T;
  currency?:
    | T
    | {
        code?: T;
        label?: T;
      };
  nav?:
    | T
    | {
        label?: T;
        href?: T;
        id?: T;
      };
  cta?:
    | T
    | {
        free?: T;
        all?: T;
        primary?: T;
        enrol?: T;
        subscribe?: T;
        notify?: T;
        youtube?: T;
      };
  ui?:
    | T
    | {
        langSwitch?: T;
        menu?: T;
        skip?: T;
        signIn?: T;
        light?: T;
        dark?: T;
        close?: T;
      };
  status?:
    | T
    | {
        live?: T;
        partial?: T;
        soon?: T;
      };
  support?:
    | T
    | {
        enabled?: T;
        baseUrl?: T;
        websiteToken?: T;
      };
  chat?:
    | T
    | {
        title?: T;
        greeting?: T;
        items?:
          | T
          | {
              q?: T;
              a?: T;
              id?: T;
            };
        placeholder?: T;
        send?: T;
        disclaimer?: T;
      };
  footer?:
    | T
    | {
        tagline?: T;
        coursesHeading?: T;
        academyHeading?: T;
        contactHeading?: T;
        socialHeading?: T;
        links?:
          | T
          | {
              label?: T;
              href?: T;
              id?: T;
            };
        rights?: T;
      };
  social?:
    | T
    | {
        network?: T;
        url?: T;
        id?: T;
      };
  updatedAt?: T;
  createdAt?: T;
  globalType?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "collections_widget".
 */
export interface CollectionsWidget {
  data?: {
    [k: string]: unknown;
  };
  width: 'full';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "auth".
 */
export interface Auth {
  [k: string]: unknown;
}


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