/* tslint:disable */
/* eslint-disable */
/**
 * This file was automatically generated by Payload.
 * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
 * and re-run `payload generate:types` to regenerate this file.
 */

/**
 * Supported timezones in IANA format.
 *
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "supportedTimezones".
 */
export type SupportedTimezones =
  | 'Pacific/Midway'
  | 'Pacific/Niue'
  | 'Pacific/Honolulu'
  | 'Pacific/Rarotonga'
  | 'America/Anchorage'
  | 'Pacific/Gambier'
  | 'America/Los_Angeles'
  | 'America/Tijuana'
  | 'America/Denver'
  | 'America/Phoenix'
  | 'America/Chicago'
  | 'America/Guatemala'
  | 'America/New_York'
  | 'America/Bogota'
  | 'America/Caracas'
  | 'America/Santiago'
  | 'America/Buenos_Aires'
  | 'America/Sao_Paulo'
  | 'Atlantic/South_Georgia'
  | 'Atlantic/Azores'
  | 'Atlantic/Cape_Verde'
  | 'Europe/London'
  | 'Europe/Berlin'
  | 'Africa/Lagos'
  | 'Europe/Athens'
  | 'Africa/Cairo'
  | 'Europe/Moscow'
  | 'Asia/Riyadh'
  | 'Asia/Dubai'
  | 'Asia/Baku'
  | 'Asia/Karachi'
  | 'Asia/Tashkent'
  | 'Asia/Calcutta'
  | 'Asia/Dhaka'
  | 'Asia/Almaty'
  | 'Asia/Jakarta'
  | 'Asia/Bangkok'
  | 'Asia/Shanghai'
  | 'Asia/Singapore'
  | 'Asia/Tokyo'
  | 'Asia/Seoul'
  | 'Australia/Brisbane'
  | 'Australia/Sydney'
  | 'Pacific/Guam'
  | 'Pacific/Noumea'
  | 'Pacific/Auckland'
  | 'Pacific/Fiji';

export interface Config {
  auth: {
    users: UserAuthOperations;
  };
  blocks: {};
  collections: {
    posts: Post;
    simple: Simple;
    users: User;
    'payload-jobs': PayloadJob;
    'payload-locked-documents': PayloadLockedDocument;
    'payload-preferences': PayloadPreference;
    'payload-migrations': PayloadMigration;
  };
  collectionsJoins: {};
  collectionsSelect: {
    posts: PostsSelect<false> | PostsSelect<true>;
    simple: SimpleSelect<false> | SimpleSelect<true>;
    users: UsersSelect<false> | UsersSelect<true>;
    'payload-jobs': PayloadJobsSelect<false> | PayloadJobsSelect<true>;
    'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
    'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>;
    'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>;
  };
  db: {
    defaultIDType: string;
  };
  globals: {};
  globalsSelect: {};
  locale: null;
  user: User & {
    collection: 'users';
  };
  jobs: {
    tasks: {
      UpdatePost: MyUpdatePostType;
      UpdatePostStep2: TaskUpdatePostStep2;
      CreateSimple: TaskCreateSimple;
      CreateSimpleRetriesUndefined: TaskCreateSimpleRetriesUndefined;
      CreateSimpleRetries0: TaskCreateSimpleRetries0;
      CreateSimpleWithDuplicateMessage: TaskCreateSimpleWithDuplicateMessage;
      ExternalTask: TaskExternalTask;
      ThrowError: TaskThrowError;
      ReturnError: TaskReturnError;
      ReturnCustomError: TaskReturnCustomError;
      inline: {
        input: unknown;
        output: unknown;
      };
    };
    workflows: {
      updatePost: MyUpdatePostWorkflowType;
      updatePostJSONWorkflow: WorkflowUpdatePostJSONWorkflow;
      retriesTest: WorkflowRetriesTest;
      retriesRollbackTest: WorkflowRetriesRollbackTest;
      retriesWorkflowLevelTest: WorkflowRetriesWorkflowLevelTest;
      workflowNoRetriesSet: WorkflowWorkflowNoRetriesSet;
      workflowRetries0: WorkflowWorkflowRetries0;
      workflowAndTasksRetriesUndefined: WorkflowWorkflowAndTasksRetriesUndefined;
      workflowRetries2TasksRetriesUndefined: WorkflowWorkflowRetries2TasksRetriesUndefined;
      workflowRetries2TasksRetries0: WorkflowWorkflowRetries2TasksRetries0;
      inlineTaskTest: WorkflowInlineTaskTest;
      inlineTaskTestDelayed: WorkflowInlineTaskTestDelayed;
      externalWorkflow: WorkflowExternalWorkflow;
      retriesBackoffTest: WorkflowRetriesBackoffTest;
      subTask: WorkflowSubTask;
      subTaskFails: WorkflowSubTaskFails;
      longRunning: WorkflowLongRunning;
      parallelTask: WorkflowParallelTask;
    };
  };
}
export interface UserAuthOperations {
  forgotPassword: {
    email: string;
    password: string;
  };
  login: {
    email: string;
    password: string;
  };
  registerFirstUser: {
    email: string;
    password: string;
  };
  unlock: {
    email: string;
    password: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "posts".
 */
export interface Post {
  id: string;
  title: string;
  content?: {
    root: {
      type: string;
      children: {
        type: string;
        version: number;
        [k: string]: unknown;
      }[];
      direction: ('ltr' | 'rtl') | null;
      format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
      indent: number;
      version: number;
    };
    [k: string]: unknown;
  } | null;
  jobStep1Ran?: string | null;
  jobStep2Ran?: string | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "simple".
 */
export interface Simple {
  id: string;
  title: string;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "users".
 */
export interface User {
  id: string;
  updatedAt: string;
  createdAt: string;
  email: string;
  resetPasswordToken?: string | null;
  resetPasswordExpiration?: string | null;
  salt?: string | null;
  hash?: string | null;
  loginAttempts?: number | null;
  lockUntil?: string | null;
  password?: string | null;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-jobs".
 */
export interface PayloadJob {
  id: string;
  /**
   * 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'
          | 'UpdatePost'
          | 'UpdatePostStep2'
          | 'CreateSimple'
          | 'CreateSimpleRetriesUndefined'
          | 'CreateSimpleRetries0'
          | 'CreateSimpleWithDuplicateMessage'
          | 'ExternalTask'
          | 'ThrowError'
          | 'ReturnError'
          | 'ReturnCustomError';
        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;
  workflowSlug?:
    | (
        | 'updatePost'
        | 'updatePostJSONWorkflow'
        | 'retriesTest'
        | 'retriesRollbackTest'
        | 'retriesWorkflowLevelTest'
        | 'workflowNoRetriesSet'
        | 'workflowRetries0'
        | 'workflowAndTasksRetriesUndefined'
        | 'workflowRetries2TasksRetriesUndefined'
        | 'workflowRetries2TasksRetries0'
        | 'inlineTaskTest'
        | 'inlineTaskTestDelayed'
        | 'externalWorkflow'
        | 'retriesBackoffTest'
        | 'subTask'
        | 'subTaskFails'
        | 'longRunning'
        | 'parallelTask'
      )
    | null;
  taskSlug?:
    | (
        | 'inline'
        | 'UpdatePost'
        | 'UpdatePostStep2'
        | 'CreateSimple'
        | 'CreateSimpleRetriesUndefined'
        | 'CreateSimpleRetries0'
        | 'CreateSimpleWithDuplicateMessage'
        | 'ExternalTask'
        | 'ThrowError'
        | 'ReturnError'
        | 'ReturnCustomError'
      )
    | 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: string;
  document?:
    | ({
        relationTo: 'posts';
        value: string | Post;
      } | null)
    | ({
        relationTo: 'simple';
        value: string | Simple;
      } | null)
    | ({
        relationTo: 'users';
        value: string | User;
      } | null)
    | ({
        relationTo: 'payload-jobs';
        value: string | PayloadJob;
      } | null);
  globalSlug?: string | null;
  user: {
    relationTo: 'users';
    value: string | User;
  };
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-preferences".
 */
export interface PayloadPreference {
  id: string;
  user: {
    relationTo: 'users';
    value: string | User;
  };
  key?: string | null;
  value?:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-migrations".
 */
export interface PayloadMigration {
  id: string;
  name?: string | null;
  batch?: number | null;
  updatedAt: string;
  createdAt: string;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "posts_select".
 */
export interface PostsSelect<T extends boolean = true> {
  title?: T;
  content?: T;
  jobStep1Ran?: T;
  jobStep2Ran?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "simple_select".
 */
export interface SimpleSelect<T extends boolean = true> {
  title?: T;
  updatedAt?: T;
  createdAt?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "users_select".
 */
export interface UsersSelect<T extends boolean = true> {
  updatedAt?: T;
  createdAt?: T;
  email?: T;
  resetPasswordToken?: T;
  resetPasswordExpiration?: T;
  salt?: T;
  hash?: T;
  loginAttempts?: T;
  lockUntil?: T;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "payload-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;
      };
  workflowSlug?: 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-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` "MyUpdatePostType".
 */
export interface MyUpdatePostType {
  input: {
    post: string | Post;
    message: string;
  };
  output: {
    messageTwice: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "TaskUpdatePostStep2".
 */
export interface TaskUpdatePostStep2 {
  input: {
    post: string | Post;
    messageTwice: string;
  };
  output?: unknown;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "TaskCreateSimple".
 */
export interface TaskCreateSimple {
  input: {
    message: string;
    shouldFail?: boolean | null;
  };
  output: {
    simpleID: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "TaskCreateSimpleRetriesUndefined".
 */
export interface TaskCreateSimpleRetriesUndefined {
  input: {
    message: string;
    shouldFail?: boolean | null;
  };
  output: {
    simpleID: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "TaskCreateSimpleRetries0".
 */
export interface TaskCreateSimpleRetries0 {
  input: {
    message: string;
    shouldFail?: boolean | null;
  };
  output: {
    simpleID: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "TaskCreateSimpleWithDuplicateMessage".
 */
export interface TaskCreateSimpleWithDuplicateMessage {
  input: {
    message: string;
    shouldFail?: boolean | null;
  };
  output: {
    simpleID: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "TaskExternalTask".
 */
export interface TaskExternalTask {
  input: {
    message: string;
  };
  output: {
    simpleID: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "TaskThrowError".
 */
export interface TaskThrowError {
  input?: unknown;
  output?: unknown;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "TaskReturnError".
 */
export interface TaskReturnError {
  input?: unknown;
  output?: unknown;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "TaskReturnCustomError".
 */
export interface TaskReturnCustomError {
  input: {
    errorMessage: string;
  };
  output?: unknown;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "MyUpdatePostWorkflowType".
 */
export interface MyUpdatePostWorkflowType {
  input: {
    post: string | Post;
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowUpdatePostJSONWorkflow".
 */
export interface WorkflowUpdatePostJSONWorkflow {
  input: {
    post: string | Post;
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowRetriesTest".
 */
export interface WorkflowRetriesTest {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowRetriesRollbackTest".
 */
export interface WorkflowRetriesRollbackTest {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowRetriesWorkflowLevelTest".
 */
export interface WorkflowRetriesWorkflowLevelTest {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowWorkflowNoRetriesSet".
 */
export interface WorkflowWorkflowNoRetriesSet {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowWorkflowRetries0".
 */
export interface WorkflowWorkflowRetries0 {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowWorkflowAndTasksRetriesUndefined".
 */
export interface WorkflowWorkflowAndTasksRetriesUndefined {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowWorkflowRetries2TasksRetriesUndefined".
 */
export interface WorkflowWorkflowRetries2TasksRetriesUndefined {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowWorkflowRetries2TasksRetries0".
 */
export interface WorkflowWorkflowRetries2TasksRetries0 {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowInlineTaskTest".
 */
export interface WorkflowInlineTaskTest {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowInlineTaskTestDelayed".
 */
export interface WorkflowInlineTaskTestDelayed {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowExternalWorkflow".
 */
export interface WorkflowExternalWorkflow {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowRetriesBackoffTest".
 */
export interface WorkflowRetriesBackoffTest {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowSubTask".
 */
export interface WorkflowSubTask {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowSubTaskFails".
 */
export interface WorkflowSubTaskFails {
  input: {
    message: string;
  };
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowLongRunning".
 */
export interface WorkflowLongRunning {
  input?: unknown;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "WorkflowParallelTask".
 */
export interface WorkflowParallelTask {
  input?: unknown;
}
/**
 * This interface was referenced by `Config`'s JSON-Schema
 * via the `definition` "auth".
 */
export interface Auth {
  [k: string]: unknown;
}


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