/* 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: {
    users: User;
    media: Media;
    posts: Post;
    'form-submissions': FormSubmission;
    products: Product;
    pages: Page;
    'payload-kv': PayloadKv;
    'payload-locked-documents': PayloadLockedDocument;
    'payload-preferences': PayloadPreference;
    'payload-migrations': PayloadMigration;
  };
  collectionsJoins: {};
  collectionsSelect: {
    users: UsersSelect<false> | UsersSelect<true>;
    media: MediaSelect<false> | MediaSelect<true>;
    posts: PostsSelect<false> | PostsSelect<true>;
    'form-submissions': FormSubmissionsSelect<false> | FormSubmissionsSelect<true>;
    products: ProductsSelect<false> | ProductsSelect<true>;
    pages: PagesSelect<false> | PagesSelect<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 | ('de' | 'en') | ('de' | 'en')[];
  globals: {};
  globalsSelect: {};
  locale: 'de' | '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` "users".
 */
export interface User {
  id: number;
  updatedAt: string;
  createdAt: string;
  email: string;
  resetPasswordToken?: string | null;
  resetPasswordExpiration?: string | null;
  salt?: string | null;
  hash?: string | null;
  loginAttempts?: number | null;
  lockUntil?: string | null;
  sessions?:
    | {
        id: string;
        createdAt?: string | null;
        expiresAt: string;
      }[]
    | null;
  password?: string | null;
  collection: 'users';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "media".
 */
export interface Media {
  id: number;
  alt: string;
  caption?: string | null;
  updatedAt: string;
  createdAt: string;
  url?: string | null;
  thumbnailURL?: string | null;
  filename?: string | null;
  mimeType?: string | null;
  filesize?: number | null;
  width?: number | null;
  height?: number | null;
  focalX?: number | null;
  focalY?: number | null;
  sizes?: {
    thumbnail?: {
      url?: string | null;
      width?: number | null;
      height?: number | null;
      mimeType?: string | null;
      filesize?: number | null;
      filename?: string | null;
    };
    card?: {
      url?: string | null;
      width?: number | null;
      height?: number | null;
      mimeType?: string | null;
      filesize?: number | null;
      filename?: string | null;
    };
    tablet?: {
      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` "posts".
 */
export interface Post {
  id: number;
  title: string;
  /**
   * Unique slug per locale (e.g. same slug can exist in DE and EN).
   */
  slug: string;
  /**
   * A short summary for blog feed cards and SEO.
   */
  excerpt?: string | null;
  /**
   * Future dates will schedule the post to publish automatically.
   */
  date: string;
  /**
   * The primary Hero image used for headers and OpenGraph previews.
   */
  featuredImage?: (number | null) | Media;
  /**
   * Used for tag bucketing (e.g. "Kabel Technologie").
   */
  category?: string | null;
  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;
  } | null;
  updatedAt: string;
  createdAt: string;
  _status?: ('draft' | 'published') | null;
}
/**
 * Captured leads from Contact and Product Quote forms.
 *
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "form-submissions".
 */
export interface FormSubmission {
  id: number;
  name: string;
  email: string;
  type: 'contact' | 'product_quote';
  /**
   * The specific KLZ product the user requested a quote for.
   */
  productName?: string | null;
  message: string;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "products".
 */
export interface Product {
  id: number;
  title: string;
  sku: string;
  slug: string;
  description: string;
  categories: {
    category?: string | null;
    id?: string | null;
  }[];
  /**
   * The primary thumbnail used in list views.
   */
  featuredImage?: (number | null) | Media;
  images?: (number | Media)[] | null;
  application?: {
    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;
  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;
  } | null;
  updatedAt: string;
  createdAt: string;
  _status?: ('draft' | 'published') | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "pages".
 */
export interface Page {
  id: number;
  title: string;
  /**
   * The URL slug for this locale (e.g. "impressum" for DE, "imprint" for EN).
   */
  slug: string;
  /**
   * Full Bleed pages render blocks edge-to-edge without a generic hero wrapper.
   */
  layout?: ('default' | 'fullBleed') | null;
  excerpt?: string | null;
  featuredImage?: (number | null) | Media;
  /**
   * If set, visiting this page will immediately redirect the user to this URL (e.g. /de/terms).
   */
  redirectUrl?: string | null;
  /**
   * Check for a permanent (301) redirect. Uncheck for a temporary (302) redirect.
   */
  redirectPermanent?: boolean | null;
  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;
  };
  updatedAt: string;
  createdAt: string;
  _status?: ('draft' | 'published') | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-kv".
 */
export interface PayloadKv {
  id: number;
  key: string;
  data:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-locked-documents".
 */
export interface PayloadLockedDocument {
  id: number;
  document?:
    | ({
        relationTo: 'users';
        value: number | User;
      } | null)
    | ({
        relationTo: 'media';
        value: number | Media;
      } | null)
    | ({
        relationTo: 'posts';
        value: number | Post;
      } | null)
    | ({
        relationTo: 'form-submissions';
        value: number | FormSubmission;
      } | null)
    | ({
        relationTo: 'products';
        value: number | Product;
      } | null)
    | ({
        relationTo: 'pages';
        value: number | Page;
      } | null);
  globalSlug?: string | null;
  user: {
    relationTo: 'users';
    value: number | User;
  };
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-preferences".
 */
export interface PayloadPreference {
  id: number;
  user: {
    relationTo: 'users';
    value: number | User;
  };
  key?: string | null;
  value?:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-migrations".
 */
export interface PayloadMigration {
  id: number;
  name?: string | null;
  batch?: number | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "users_select".
 */
export interface UsersSelect<T extends boolean = true> {
  updatedAt?: T;
  createdAt?: T;
  email?: T;
  resetPasswordToken?: T;
  resetPasswordExpiration?: T;
  salt?: T;
  hash?: T;
  loginAttempts?: T;
  lockUntil?: T;
  sessions?:
    | T
    | {
        id?: T;
        createdAt?: T;
        expiresAt?: T;
      };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "media_select".
 */
export interface MediaSelect<T extends boolean = true> {
  alt?: T;
  caption?: 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;
            };
        card?:
          | T
          | {
              url?: T;
              width?: T;
              height?: T;
              mimeType?: T;
              filesize?: T;
              filename?: T;
            };
        tablet?:
          | 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` "posts_select".
 */
export interface PostsSelect<T extends boolean = true> {
  title?: T;
  slug?: T;
  excerpt?: T;
  date?: T;
  featuredImage?: T;
  category?: T;
  content?: T;
  updatedAt?: T;
  createdAt?: T;
  _status?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "form-submissions_select".
 */
export interface FormSubmissionsSelect<T extends boolean = true> {
  name?: T;
  email?: T;
  type?: T;
  productName?: T;
  message?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "products_select".
 */
export interface ProductsSelect<T extends boolean = true> {
  title?: T;
  sku?: T;
  slug?: T;
  description?: T;
  categories?:
    | T
    | {
        category?: T;
        id?: T;
      };
  featuredImage?: T;
  images?: T;
  application?: T;
  content?: T;
  updatedAt?: T;
  createdAt?: T;
  _status?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "pages_select".
 */
export interface PagesSelect<T extends boolean = true> {
  title?: T;
  slug?: T;
  layout?: T;
  excerpt?: T;
  featuredImage?: T;
  redirectUrl?: T;
  redirectPermanent?: T;
  content?: T;
  updatedAt?: T;
  createdAt?: T;
  _status?: 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` "collections_widget".
 */
export interface CollectionsWidget {
  data?: {
    [k: string]: unknown;
  };
  width: 'full';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "StatsBlock".
 */
export interface StatsBlock {
  stats: {
    value: string;
    label: string;
    id?: string | null;
  }[];
  id?: string | null;
  blockName?: string | null;
  blockType: 'stats';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "SplitHeadingBlock".
 */
export interface SplitHeadingBlock {
  title: string;
  id?: string | null;
  level?: ('h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6') | null;
  blockName?: string | null;
  blockType: 'splitHeading';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "ProductTabsBlock".
 */
export interface ProductTabsBlock {
  technicalItems?:
    | {
        label: string;
        value: string;
        unit?: string | null;
        id?: string | null;
      }[]
    | null;
  voltageTables?:
    | {
        voltageLabel: string;
        metaItems?:
          | {
              label: string;
              value: string;
              unit?: string | null;
              id?: string | null;
            }[]
          | null;
        columns?:
          | {
              key: string;
              label: string;
              id?: string | null;
            }[]
          | null;
        rows?:
          | {
              configuration: string;
              cells?:
                | {
                    value?: string | null;
                    id?: string | null;
                  }[]
                | null;
              id?: string | null;
            }[]
          | null;
        id?: string | null;
      }[]
    | null;
  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;
  } | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'productTabs';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "HomeHeroBlock".
 */
export interface HomeHeroBlock {
  title?: string | null;
  subtitle?: string | null;
  ctaLabel?: string | null;
  secondaryCtaLabel?: string | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'homeHero';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "HomeProductCategoriesBlock".
 */
export interface HomeProductCategoriesBlock {
  title?: string | null;
  subtitle?: string | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'homeProductCategories';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "HomeWhatWeDoBlock".
 */
export interface HomeWhatWeDoBlock {
  title?: string | null;
  subtitle?: string | null;
  expertiseLabel?: string | null;
  quote?: string | null;
  items?:
    | {
        title?: string | null;
        description?: string | null;
        id?: string | null;
      }[]
    | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'homeWhatWeDo';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "HomeRecentPostsBlock".
 */
export interface HomeRecentPostsBlock {
  title?: string | null;
  subtitle?: string | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'homeRecentPosts';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "HomeExperienceBlock".
 */
export interface HomeExperienceBlock {
  title?: string | null;
  subtitle?: string | null;
  paragraph1?: string | null;
  paragraph2?: string | null;
  badge1?: string | null;
  badge1Text?: string | null;
  badge2?: string | null;
  badge2Text?: string | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'homeExperience';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "HomeWhyChooseUsBlock".
 */
export interface HomeWhyChooseUsBlock {
  title?: string | null;
  subtitle?: string | null;
  tagline?: string | null;
  features?:
    | {
        feature?: string | null;
        id?: string | null;
      }[]
    | null;
  items?:
    | {
        title?: string | null;
        description?: string | null;
        id?: string | null;
      }[]
    | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'homeWhyChooseUs';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "HomeMeetTheTeamBlock".
 */
export interface HomeMeetTheTeamBlock {
  title?: string | null;
  subtitle?: string | null;
  description?: string | null;
  ctaLabel?: string | null;
  networkLabel?: string | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'homeMeetTheTeam';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "HomeGalleryBlock".
 */
export interface HomeGalleryBlock {
  title?: string | null;
  subtitle?: string | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'homeGallery';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "HomeVideoBlock".
 */
export interface HomeVideoBlock {
  title?: string | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'homeVideo';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "HomeCTABlock".
 */
export interface HomeCTABlock {
  title?: string | null;
  subtitle?: string | null;
  description?: string | null;
  buttonLabel?: string | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'homeCTA';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "CategoryGridBlock".
 */
export interface CategoryGridBlock {
  categories: {
    title: string;
    description?: string | null;
    image?: (number | null) | Media;
    icon?: (number | null) | Media;
    href: string;
    ctaLabel?: string | null;
    id?: string | null;
  }[];
  id?: string | null;
  blockName?: string | null;
  blockType: 'categoryGrid';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "ContactSectionBlock".
 */
export interface ContactSectionBlock {
  showForm?: boolean | null;
  showMap?: boolean | null;
  showHours?: boolean | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'contactSection';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "HeroSectionBlock".
 */
export interface HeroSectionBlock {
  badge?: string | null;
  title: string;
  subtitle?: string | null;
  backgroundImage?: (number | null) | Media;
  ctaLabel?: string | null;
  ctaHref?: string | null;
  alignment?: ('left' | 'center') | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'heroSection';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "ImageGalleryBlock".
 */
export interface ImageGalleryBlock {
  images: {
    image: number | Media;
    alt?: string | null;
    id?: string | null;
  }[];
  id?: string | null;
  blockName?: string | null;
  blockType: 'imageGallery';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "ManifestoGridBlock".
 */
export interface ManifestoGridBlock {
  title?: string | null;
  subtitle?: string | null;
  tagline?: string | null;
  items: {
    title: string;
    description: string;
    id?: string | null;
  }[];
  id?: string | null;
  blockName?: string | null;
  blockType: 'manifestoGrid';
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "TeamProfileBlock".
 */
export interface TeamProfileBlock {
  name: string;
  role: string;
  quote?: string | null;
  description?: string | null;
  image?: (number | null) | Media;
  linkedinUrl?: string | null;
  linkedinLabel?: string | null;
  layout?: ('imageRight' | 'imageLeft') | null;
  colorScheme?: ('dark' | 'light') | null;
  id?: string | null;
  blockName?: string | null;
  blockType: 'teamProfile';
}
/**
 * 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 {}
}
