/* 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.
 */

export interface Config {
  collections: {
    users: User;
    'api-keys': ApiKey;
    'public-users': PublicUser;
    'payload-preferences': PayloadPreference;
    'payload-migrations': PayloadMigration;
  };
  globals: {};
}
export interface User {
  id: string;
  roles: ('admin' | 'editor' | 'moderator' | 'user' | 'viewer')[];
  namedSaveToJWT?: string;
  group?: {
    liftedSaveToJWT?: string;
  };
  groupSaveToJWT?: {
    saveToJWTString?: string;
    saveToJWTFalse?: string;
  };
  saveToJWTTab: {
    test?: string;
  };
  tabSaveToJWTString: {
    includedByDefault?: string;
  };
  tabLiftedSaveToJWT?: string;
  unnamedTabSaveToJWTString?: string;
  unnamedTabSaveToJWTFalse?: string;
  custom?: string;
  updatedAt: string;
  createdAt: string;
  enableAPIKey?: boolean;
  apiKey?: string;
  apiKeyIndex?: string;
  email: string;
  resetPasswordToken?: string;
  resetPasswordExpiration?: string;
  salt?: string;
  hash?: string;
  loginAttempts?: number;
  lockUntil?: string;
  password?: string;
}
export interface ApiKey {
  id: string;
  updatedAt: string;
  createdAt: string;
  enableAPIKey?: boolean;
  apiKey?: string;
  apiKeyIndex?: string;
}
export interface PublicUser {
  id: string;
  updatedAt: string;
  createdAt: string;
  email: string;
  resetPasswordToken?: string;
  resetPasswordExpiration?: string;
  salt?: string;
  hash?: string;
  _verified?: boolean;
  _verificationToken?: string;
  loginAttempts?: number;
  lockUntil?: string;
  password?: string;
}
export interface PayloadPreference {
  id: string;
  user:
    | {
        relationTo: 'users';
        value: string | User;
      }
    | {
        relationTo: 'api-keys';
        value: string | ApiKey;
      }
    | {
        relationTo: 'public-users';
        value: string | PublicUser;
      };
  key?: string;
  value?:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
  updatedAt: string;
  createdAt: string;
}
export interface PayloadMigration {
  id: string;
  name?: string;
  batch?: number;
  schema?:
    | {
        [k: string]: unknown;
      }
    | unknown[]
    | string
    | number
    | boolean
    | null;
  updatedAt: string;
  createdAt: string;
}


declare module 'payload' {
  export interface GeneratedTypes {
    collections: {
      'users': User
      'api-keys': ApiKey
      'public-users': PublicUser
      'payload-preferences': PayloadPreference
      'payload-migrations': PayloadMigration
    }

  }
}