// This file is auto-generated by @hey-api/openapi-ts

export type ClientOptions = {
    baseUrl: 'http://localhost:3000' | (string & {});
};

export type SupportedTimezones = string;

/**
 * Page
 */
export type Page = {
    id: string;
    tenant?: string | null | Tenant;
    title: string;
    hero: {
        type: 'none' | 'highImpact' | 'mediumImpact' | 'lowImpact';
        richText?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        links?: Array<{
            link: {
                type?: 'reference' | 'custom';
                newTab?: boolean | null;
                reference?: {
                    relationTo: 'pages';
                    value: string | Page;
                } | null | {
                    relationTo: 'posts';
                    value: string | Post;
                };
                url?: string | null;
                label: string;
                /**
                 * Choose how the link should be rendered.
                 */
                appearance?: 'default' | 'outline';
            };
            id?: string | null;
        }> | null;
        media?: string | null | Media;
    };
    layout: Array<{
        richText?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        links?: Array<{
            link: {
                type?: 'reference' | 'custom';
                newTab?: boolean | null;
                reference?: {
                    relationTo: 'pages';
                    value: string | Page;
                } | null | {
                    relationTo: 'posts';
                    value: string | Post;
                };
                url?: string | null;
                label: string;
                /**
                 * Choose how the link should be rendered.
                 */
                appearance?: 'default' | 'outline';
            };
            id?: string | null;
        }> | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'cta';
    } | {
        columns?: Array<{
            size?: 'oneThird' | 'half' | 'twoThirds' | 'full';
            richText?: {
                root: {
                    type: string;
                    children: Array<{
                        type: string;
                        version: number;
                        [key: string]: unknown | string | number;
                    }>;
                    direction: 'ltr' | 'rtl' | null;
                    format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                    indent: number;
                    version: number;
                };
            } | null;
            enableLink?: boolean | null;
            link?: {
                type?: 'reference' | 'custom';
                newTab?: boolean | null;
                reference?: {
                    relationTo: 'pages';
                    value: string | Page;
                } | null | {
                    relationTo: 'posts';
                    value: string | Post;
                };
                url?: string | null;
                label: string;
                /**
                 * Choose how the link should be rendered.
                 */
                appearance?: 'default' | 'outline';
            };
            id?: string | null;
        }> | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'content';
    } | {
        media: string | Media;
        id?: string | null;
        blockName?: string | null;
        blockType: 'mediaBlock';
    } | {
        introContent?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        populateBy?: 'collection' | 'selection';
        relationTo?: 'posts';
        categories?: Array<string | Category> | null;
        limit?: number | null;
        selectedDocs?: Array<{
            relationTo: 'posts';
            value: string | Post;
        }> | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'archive';
    } | {
        form: string | Form;
        enableIntro?: boolean | null;
        introContent?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'formBlock';
    }>;
    meta?: {
        title?: string | null;
        /**
         * Maximum upload file size: 12MB. Recommended file size for images is <500KB.
         */
        image?: string | null | Media;
        description?: string | null;
    };
    publishedAt?: string | null;
    /**
     * 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';
};

/**
 * Post
 */
export type Post = {
    id: string;
    tenant?: string | null | Tenant;
    title: string;
    heroImage?: string | null | Media;
    content: {
        root: {
            type: string;
            children: Array<{
                type: string;
                version: number;
                [key: string]: unknown | string | number;
            }>;
            direction: 'ltr' | 'rtl' | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
        };
    };
    content_html?: string | null;
    relatedPosts?: Array<string | Post> | null;
    categories?: Array<string | Category> | null;
    meta?: {
        title?: string | null;
        /**
         * Maximum upload file size: 12MB. Recommended file size for images is <500KB.
         */
        image?: string | null | Media;
        description?: string | null;
    };
    publishedAt?: string | null;
    authors?: Array<string | User> | null;
    populatedAuthors?: Array<{
        id?: string | null;
        name?: string | null;
    }> | null;
    /**
     * 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';
};

/**
 * Media
 */
export type Media = {
    id: string;
    tenant?: string | null | Tenant;
    alt?: string | null;
    caption?: {
        root: {
            type: string;
            children: Array<{
                type: string;
                version: number;
                [key: string]: unknown | string | number;
            }>;
            direction: 'ltr' | 'rtl' | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
        };
    } | null;
    folder?: string | null | Folder;
    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;
        };
    };
};

/**
 * Category
 */
export type Category = {
    id: string;
    tenant?: string | null | Tenant;
    title: string;
    /**
     * When enabled, the slug will auto-generate from the title field on save and autosave.
     */
    generateSlug?: boolean | null;
    slug: string;
    parent?: string | null | Category;
    breadcrumbs?: Array<{
        doc?: string | null | Category;
        url?: string | null;
        label?: string | null;
        id?: string | null;
    }> | null;
    updatedAt: string;
    createdAt: string;
};

/**
 * User
 */
export type User = {
    id: string;
    email: string;
    emailVerified?: string | null;
    name?: string | null;
    image?: string | null;
    displayName?: string | null;
    tenants?: Array<{
        tenant: string | Tenant;
        id?: string | null;
    }> | null;
    accounts?: Array<{
        provider: string;
        providerAccountId: string;
        type: 'oidc' | 'oauth' | 'email' | 'webauthn';
        id?: string | null;
    }> | null;
    updatedAt: string;
    createdAt: string;
};

/**
 * Tenant
 *
 * 租户基本信息管理
 */
export type Tenant = {
    id: string;
    /**
     * 租户显示名称
     */
    name?: string | null;
    /**
     * 租户标识符（用于 API 认证时的 X-Tenant-Slug 请求头）
     */
    slug: string;
    apiKeyEncrypted?: string | null;
    /**
     * 这是该租户的主 API Key。
     */
    apiKeyDisplay?: string | null;
    updatedAt: string;
    createdAt: string;
};

/**
 * Redirect
 */
export type Redirect = {
    id: string;
    tenant?: string | null | Tenant;
    /**
     * You will need to rebuild the website when changing this field.
     */
    from: string;
    to?: {
        type?: 'reference' | 'custom';
        reference?: {
            relationTo: 'pages';
            value: string | Page;
        } | null | {
            relationTo: 'posts';
            value: string | Post;
        };
        url?: string | null;
    };
    updatedAt: string;
    createdAt: string;
};

/**
 * Form
 */
export type Form = {
    id: string;
    tenant?: string | null | Tenant;
    title: string;
    fields?: Array<{
        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: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | 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?: Array<{
            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';
    }> | null;
    submitButtonLabel?: string | null;
    /**
     * Choose whether to display an on-page message or redirect to a different page after they submit the form.
     */
    confirmationType?: 'message' | 'redirect';
    confirmationMessage?: {
        root: {
            type: string;
            children: Array<{
                type: string;
                version: number;
                [key: string]: unknown | string | number;
            }>;
            direction: 'ltr' | 'rtl' | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
        };
    } | null;
    redirect?: {
        url: string;
    };
    /**
     * 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?: Array<{
        emailTo?: string | null;
        cc?: string | null;
        bcc?: string | null;
        replyTo?: string | null;
        emailFrom?: string | null;
        subject: string;
        /**
         * Enter the message that should be sent in this email.
         */
        message?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        id?: string | null;
    }> | null;
    updatedAt: string;
    createdAt: string;
};

/**
 * Form Submission
 */
export type FormSubmission = {
    id: string;
    form: string | Form;
    submissionData?: Array<{
        field: string;
        value: string;
        id?: string | null;
    }> | null;
    updatedAt: string;
    createdAt: string;
};

/**
 * Search Result
 *
 * This is a collection of automatically created search results. These results are used by the global site search and will be updated automatically as documents in the CMS are created or updated.
 */
export type SearchResult = {
    id: string;
    title?: string | null;
    priority?: number | null;
    doc: {
        relationTo: 'posts';
        value: string | Post;
    };
    slug?: string | null;
    meta?: {
        title?: string | null;
        description?: string | null;
        image?: string | null | Media;
    };
    categories?: Array<{
        relationTo?: string | null;
        categoryID?: string | null;
        title?: string | null;
        id?: string | null;
    }> | null;
    updatedAt: string;
    createdAt: string;
};

/**
 * Payload Kv
 */
export type PayloadKv = {
    id: string;
    key: string;
    data: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
};

/**
 * Payload Job
 */
export type PayloadJob = {
    id: string;
    /**
     * Input data provided to the job
     */
    input?: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
    taskStatus?: {
        [key: string]: unknown;
    } | Array<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?: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
    /**
     * Task execution log
     */
    log?: Array<{
        executedAt: string;
        completedAt: string;
        taskSlug: 'inline' | 'schedulePublish';
        taskID: string;
        input?: {
            [key: string]: unknown;
        } | Array<unknown> | string | number | boolean | null;
        output?: {
            [key: string]: unknown;
        } | Array<unknown> | string | number | boolean | null;
        state: 'failed' | 'succeeded';
        error?: {
            [key: string]: unknown;
        } | Array<unknown> | string | number | boolean | null;
        id?: string | null;
    }> | null;
    taskSlug?: 'inline' | 'schedulePublish';
    queue?: string | null;
    waitUntil?: string | null;
    processing?: boolean | null;
    updatedAt: string;
    createdAt: string;
};

/**
 * Folder
 */
export type Folder = {
    id: string;
    name: string;
    folder?: string | null | Folder;
    documentsAndFolders?: {
        docs?: Array<{
            relationTo?: 'payload-folders';
            value: string | Folder;
        } | {
            relationTo?: 'media';
            value: string | Media;
        }>;
        hasNextPage?: boolean;
        totalDocs?: number;
    };
    folderType?: Array<'media'> | null;
    updatedAt: string;
    createdAt: string;
};

/**
 * Payload Locked Document
 */
export type PayloadLockedDocument = {
    id: string;
    document?: {
        relationTo: 'pages';
        value: string | Page;
    } | null | {
        relationTo: 'posts';
        value: string | Post;
    } | {
        relationTo: 'media';
        value: string | Media;
    } | {
        relationTo: 'categories';
        value: string | Category;
    } | {
        relationTo: 'users';
        value: string | User;
    } | {
        relationTo: 'tenants';
        value: string | Tenant;
    } | {
        relationTo: 'redirects';
        value: string | Redirect;
    } | {
        relationTo: 'forms';
        value: string | Form;
    } | {
        relationTo: 'form-submissions';
        value: string | FormSubmission;
    } | {
        relationTo: 'search';
        value: string | SearchResult;
    } | {
        relationTo: 'payload-folders';
        value: string | Folder;
    };
    globalSlug?: string | null;
    user: {
        relationTo: 'users';
        value: string | User;
    };
    updatedAt: string;
    createdAt: string;
};

/**
 * Payload Preference
 */
export type PayloadPreference = {
    id: string;
    user: {
        relationTo: 'users';
        value: string | User;
    };
    key?: string | null;
    value?: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
    updatedAt: string;
    createdAt: string;
};

/**
 * Payload Migration
 */
export type PayloadMigration = {
    id: string;
    name?: string | null;
    batch?: number | null;
    updatedAt: string;
    createdAt: string;
};

/**
 * Page query operations
 */
export type PageQueryOperations = {
    title?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    publishedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    _status?: {
        equals?: 'draft' | 'published';
        not_equals?: 'draft' | 'published';
        in?: string;
        not_in?: string;
    };
};

/**
 * Page query conjunction
 */
export type PageQueryOperationsAnd = {
    and: Array<PageQueryOperations | PageQueryOperationsAnd | PageQueryOperationsOr>;
};

/**
 * Page query disjunction
 */
export type PageQueryOperationsOr = {
    or: Array<PageQueryOperations | PageQueryOperationsAnd | PageQueryOperationsOr>;
};

/**
 * Post query operations
 */
export type PostQueryOperations = {
    title?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    publishedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    _status?: {
        equals?: 'draft' | 'published';
        not_equals?: 'draft' | 'published';
        in?: string;
        not_in?: string;
    };
};

/**
 * Post query conjunction
 */
export type PostQueryOperationsAnd = {
    and: Array<PostQueryOperations | PostQueryOperationsAnd | PostQueryOperationsOr>;
};

/**
 * Post query disjunction
 */
export type PostQueryOperationsOr = {
    or: Array<PostQueryOperations | PostQueryOperationsAnd | PostQueryOperationsOr>;
};

/**
 * Media query operations
 */
export type MediaQueryOperations = {
    alt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    url?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    thumbnailURL?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    filename?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    mimeType?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    filesize?: {
        equals?: number;
        not_equals?: number;
        in?: string;
        not_in?: string;
        greater_than?: number;
        greater_than_equal?: number;
        less_than?: number;
        less_than_equal?: number;
    };
    width?: {
        equals?: number;
        not_equals?: number;
        in?: string;
        not_in?: string;
        greater_than?: number;
        greater_than_equal?: number;
        less_than?: number;
        less_than_equal?: number;
    };
    height?: {
        equals?: number;
        not_equals?: number;
        in?: string;
        not_in?: string;
        greater_than?: number;
        greater_than_equal?: number;
        less_than?: number;
        less_than_equal?: number;
    };
    focalX?: {
        equals?: number;
        not_equals?: number;
        in?: string;
        not_in?: string;
        greater_than?: number;
        greater_than_equal?: number;
        less_than?: number;
        less_than_equal?: number;
    };
    focalY?: {
        equals?: number;
        not_equals?: number;
        in?: string;
        not_in?: string;
        greater_than?: number;
        greater_than_equal?: number;
        less_than?: number;
        less_than_equal?: number;
    };
};

/**
 * Media query conjunction
 */
export type MediaQueryOperationsAnd = {
    and: Array<MediaQueryOperations | MediaQueryOperationsAnd | MediaQueryOperationsOr>;
};

/**
 * Media query disjunction
 */
export type MediaQueryOperationsOr = {
    or: Array<MediaQueryOperations | MediaQueryOperationsAnd | MediaQueryOperationsOr>;
};

/**
 * Category query operations
 */
export type CategoryQueryOperations = {
    title?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * Category query conjunction
 */
export type CategoryQueryOperationsAnd = {
    and: Array<CategoryQueryOperations | CategoryQueryOperationsAnd | CategoryQueryOperationsOr>;
};

/**
 * Category query disjunction
 */
export type CategoryQueryOperationsOr = {
    or: Array<CategoryQueryOperations | CategoryQueryOperationsAnd | CategoryQueryOperationsOr>;
};

/**
 * User query operations
 */
export type UserQueryOperations = {
    id?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * User query conjunction
 */
export type UserQueryOperationsAnd = {
    and: Array<UserQueryOperations | UserQueryOperationsAnd | UserQueryOperationsOr>;
};

/**
 * User query disjunction
 */
export type UserQueryOperationsOr = {
    or: Array<UserQueryOperations | UserQueryOperationsAnd | UserQueryOperationsOr>;
};

/**
 * Tenant query operations
 */
export type TenantQueryOperations = {
    name?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    slug?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * Tenant query conjunction
 */
export type TenantQueryOperationsAnd = {
    and: Array<TenantQueryOperations | TenantQueryOperationsAnd | TenantQueryOperationsOr>;
};

/**
 * Tenant query disjunction
 */
export type TenantQueryOperationsOr = {
    or: Array<TenantQueryOperations | TenantQueryOperationsAnd | TenantQueryOperationsOr>;
};

/**
 * Redirect query operations
 */
export type RedirectQueryOperations = {
    from?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * Redirect query conjunction
 */
export type RedirectQueryOperationsAnd = {
    and: Array<RedirectQueryOperations | RedirectQueryOperationsAnd | RedirectQueryOperationsOr>;
};

/**
 * Redirect query disjunction
 */
export type RedirectQueryOperationsOr = {
    or: Array<RedirectQueryOperations | RedirectQueryOperationsAnd | RedirectQueryOperationsOr>;
};

/**
 * Form query operations
 */
export type FormQueryOperations = {
    title?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    submitButtonLabel?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    confirmationType?: {
        equals?: 'message' | 'redirect';
        not_equals?: 'message' | 'redirect';
        in?: string;
        not_in?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * Form query conjunction
 */
export type FormQueryOperationsAnd = {
    and: Array<FormQueryOperations | FormQueryOperationsAnd | FormQueryOperationsOr>;
};

/**
 * Form query disjunction
 */
export type FormQueryOperationsOr = {
    or: Array<FormQueryOperations | FormQueryOperationsAnd | FormQueryOperationsOr>;
};

/**
 * Form Submission query operations
 */
export type FormSubmissionQueryOperations = {
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * Form Submission query conjunction
 */
export type FormSubmissionQueryOperationsAnd = {
    and: Array<FormSubmissionQueryOperations | FormSubmissionQueryOperationsAnd | FormSubmissionQueryOperationsOr>;
};

/**
 * Form Submission query disjunction
 */
export type FormSubmissionQueryOperationsOr = {
    or: Array<FormSubmissionQueryOperations | FormSubmissionQueryOperationsAnd | FormSubmissionQueryOperationsOr>;
};

/**
 * Search Result query operations
 */
export type SearchResultQueryOperations = {
    title?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    priority?: {
        equals?: number;
        not_equals?: number;
        in?: string;
        not_in?: string;
        greater_than?: number;
        greater_than_equal?: number;
        less_than?: number;
        less_than_equal?: number;
    };
    slug?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * Search Result query conjunction
 */
export type SearchResultQueryOperationsAnd = {
    and: Array<SearchResultQueryOperations | SearchResultQueryOperationsAnd | SearchResultQueryOperationsOr>;
};

/**
 * Search Result query disjunction
 */
export type SearchResultQueryOperationsOr = {
    or: Array<SearchResultQueryOperations | SearchResultQueryOperationsAnd | SearchResultQueryOperationsOr>;
};

/**
 * Payload Kv query operations
 */
export type PayloadKvQueryOperations = {
    key?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
};

/**
 * Payload Kv query conjunction
 */
export type PayloadKvQueryOperationsAnd = {
    and: Array<PayloadKvQueryOperations | PayloadKvQueryOperationsAnd | PayloadKvQueryOperationsOr>;
};

/**
 * Payload Kv query disjunction
 */
export type PayloadKvQueryOperationsOr = {
    or: Array<PayloadKvQueryOperations | PayloadKvQueryOperationsAnd | PayloadKvQueryOperationsOr>;
};

/**
 * Payload Job query operations
 */
export type PayloadJobQueryOperations = {
    taskSlug?: {
        equals?: 'inline' | 'schedulePublish';
        not_equals?: 'inline' | 'schedulePublish';
        in?: string;
        not_in?: string;
    };
    queue?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    waitUntil?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    processing?: {
        equals?: boolean;
        not_equals?: boolean;
        in?: string;
        not_in?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * Payload Job query conjunction
 */
export type PayloadJobQueryOperationsAnd = {
    and: Array<PayloadJobQueryOperations | PayloadJobQueryOperationsAnd | PayloadJobQueryOperationsOr>;
};

/**
 * Payload Job query disjunction
 */
export type PayloadJobQueryOperationsOr = {
    or: Array<PayloadJobQueryOperations | PayloadJobQueryOperationsAnd | PayloadJobQueryOperationsOr>;
};

/**
 * Folder query operations
 */
export type FolderQueryOperations = {
    name?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    folderType?: {
        equals?: 'media';
        not_equals?: 'media';
        in?: string;
        not_in?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * Folder query conjunction
 */
export type FolderQueryOperationsAnd = {
    and: Array<FolderQueryOperations | FolderQueryOperationsAnd | FolderQueryOperationsOr>;
};

/**
 * Folder query disjunction
 */
export type FolderQueryOperationsOr = {
    or: Array<FolderQueryOperations | FolderQueryOperationsAnd | FolderQueryOperationsOr>;
};

/**
 * Payload Locked Document query operations
 */
export type PayloadLockedDocumentQueryOperations = {
    globalSlug?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * Payload Locked Document query conjunction
 */
export type PayloadLockedDocumentQueryOperationsAnd = {
    and: Array<PayloadLockedDocumentQueryOperations | PayloadLockedDocumentQueryOperationsAnd | PayloadLockedDocumentQueryOperationsOr>;
};

/**
 * Payload Locked Document query disjunction
 */
export type PayloadLockedDocumentQueryOperationsOr = {
    or: Array<PayloadLockedDocumentQueryOperations | PayloadLockedDocumentQueryOperationsAnd | PayloadLockedDocumentQueryOperationsOr>;
};

/**
 * Payload Preference query operations
 */
export type PayloadPreferenceQueryOperations = {
    key?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * Payload Preference query conjunction
 */
export type PayloadPreferenceQueryOperationsAnd = {
    and: Array<PayloadPreferenceQueryOperations | PayloadPreferenceQueryOperationsAnd | PayloadPreferenceQueryOperationsOr>;
};

/**
 * Payload Preference query disjunction
 */
export type PayloadPreferenceQueryOperationsOr = {
    or: Array<PayloadPreferenceQueryOperations | PayloadPreferenceQueryOperationsAnd | PayloadPreferenceQueryOperationsOr>;
};

/**
 * Payload Migration query operations
 */
export type PayloadMigrationQueryOperations = {
    name?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        like?: string;
        contains?: string;
    };
    batch?: {
        equals?: number;
        not_equals?: number;
        in?: string;
        not_in?: string;
        greater_than?: number;
        greater_than_equal?: number;
        less_than?: number;
        less_than_equal?: number;
    };
    updatedAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
    createdAt?: {
        equals?: string;
        not_equals?: string;
        in?: string;
        not_in?: string;
        greater_than?: string;
        greater_than_equal?: string;
        less_than?: string;
        less_than_equal?: string;
    };
};

/**
 * Payload Migration query conjunction
 */
export type PayloadMigrationQueryOperationsAnd = {
    and: Array<PayloadMigrationQueryOperations | PayloadMigrationQueryOperationsAnd | PayloadMigrationQueryOperationsOr>;
};

/**
 * Payload Migration query disjunction
 */
export type PayloadMigrationQueryOperationsOr = {
    or: Array<PayloadMigrationQueryOperations | PayloadMigrationQueryOperationsAnd | PayloadMigrationQueryOperationsOr>;
};

/**
 * Header
 */
export type Header = {
    id: string;
    navItems?: Array<{
        link: {
            type?: 'reference' | 'custom';
            newTab?: boolean | null;
            reference?: {
                relationTo: 'pages';
                value: string | Page;
            } | null | {
                relationTo: 'posts';
                value: string | Post;
            };
            url?: string | null;
            label: string;
        };
        id?: string | null;
    }> | null;
    updatedAt?: string | null;
    createdAt?: string | null;
};

/**
 * Header (if present)
 */
export type HeaderRead = {
    id: string;
    navItems?: Array<{
        link: {
            type?: 'reference' | 'custom';
            newTab?: boolean | null;
            reference?: {
                relationTo: 'pages';
                value: string | Page;
            } | null | {
                relationTo: 'posts';
                value: string | Post;
            };
            url?: string | null;
            label: string;
        };
        id?: string | null;
    }> | null;
    updatedAt?: string | null;
    createdAt?: string | null;
} | {
    [key: string]: unknown;
};

/**
 * Header (writable fields)
 */
export type HeaderWrite = {
    id: string;
    navItems?: Array<{
        link: {
            type?: 'reference' | 'custom';
            newTab?: boolean | null;
            reference?: {
                relationTo: 'pages';
                value: string | Page;
            } | null | {
                relationTo: 'posts';
                value: string | Post;
            };
            url?: string | null;
            label: string;
        };
        id?: string | null;
    }> | null;
    updatedAt?: string | null;
    createdAt?: string | null;
};

/**
 * Footer
 */
export type Footer = {
    id: string;
    navItems?: Array<{
        link: {
            type?: 'reference' | 'custom';
            newTab?: boolean | null;
            reference?: {
                relationTo: 'pages';
                value: string | Page;
            } | null | {
                relationTo: 'posts';
                value: string | Post;
            };
            url?: string | null;
            label: string;
        };
        id?: string | null;
    }> | null;
    updatedAt?: string | null;
    createdAt?: string | null;
};

/**
 * Footer (if present)
 */
export type FooterRead = {
    id: string;
    navItems?: Array<{
        link: {
            type?: 'reference' | 'custom';
            newTab?: boolean | null;
            reference?: {
                relationTo: 'pages';
                value: string | Page;
            } | null | {
                relationTo: 'posts';
                value: string | Post;
            };
            url?: string | null;
            label: string;
        };
        id?: string | null;
    }> | null;
    updatedAt?: string | null;
    createdAt?: string | null;
} | {
    [key: string]: unknown;
};

/**
 * Footer (writable fields)
 */
export type FooterWrite = {
    id: string;
    navItems?: Array<{
        link: {
            type?: 'reference' | 'custom';
            newTab?: boolean | null;
            reference?: {
                relationTo: 'pages';
                value: string | Page;
            } | null | {
                relationTo: 'posts';
                value: string | Post;
            };
            url?: string | null;
            label: string;
        };
        id?: string | null;
    }> | null;
    updatedAt?: string | null;
    createdAt?: string | null;
};

/**
 * Page
 *
 * Page
 */
export type PageRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    title: string;
    hero: {
        type: 'none' | 'highImpact' | 'mediumImpact' | 'lowImpact';
        richText?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        links?: Array<{
            link: {
                type?: 'reference' | 'custom';
                newTab?: boolean | null;
                reference?: {
                    relationTo: 'pages';
                    value: string | Page;
                } | null | {
                    relationTo: 'posts';
                    value: string | Post;
                };
                url?: string | null;
                label: string;
                /**
                 * Choose how the link should be rendered.
                 */
                appearance?: 'default' | 'outline';
            };
            id?: string | null;
        }> | null;
        media?: string | null | Media;
    };
    layout: Array<{
        richText?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        links?: Array<{
            link: {
                type?: 'reference' | 'custom';
                newTab?: boolean | null;
                reference?: {
                    relationTo: 'pages';
                    value: string | Page;
                } | null | {
                    relationTo: 'posts';
                    value: string | Post;
                };
                url?: string | null;
                label: string;
                /**
                 * Choose how the link should be rendered.
                 */
                appearance?: 'default' | 'outline';
            };
            id?: string | null;
        }> | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'cta';
    } | {
        columns?: Array<{
            size?: 'oneThird' | 'half' | 'twoThirds' | 'full';
            richText?: {
                root: {
                    type: string;
                    children: Array<{
                        type: string;
                        version: number;
                        [key: string]: unknown | string | number;
                    }>;
                    direction: 'ltr' | 'rtl' | null;
                    format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                    indent: number;
                    version: number;
                };
            } | null;
            enableLink?: boolean | null;
            link?: {
                type?: 'reference' | 'custom';
                newTab?: boolean | null;
                reference?: {
                    relationTo: 'pages';
                    value: string | Page;
                } | null | {
                    relationTo: 'posts';
                    value: string | Post;
                };
                url?: string | null;
                label: string;
                /**
                 * Choose how the link should be rendered.
                 */
                appearance?: 'default' | 'outline';
            };
            id?: string | null;
        }> | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'content';
    } | {
        media: string | Media;
        id?: string | null;
        blockName?: string | null;
        blockType: 'mediaBlock';
    } | {
        introContent?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        populateBy?: 'collection' | 'selection';
        relationTo?: 'posts';
        categories?: Array<string | Category> | null;
        limit?: number | null;
        selectedDocs?: Array<{
            relationTo: 'posts';
            value: string | Post;
        }> | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'archive';
    } | {
        form: string | Form;
        enableIntro?: boolean | null;
        introContent?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'formBlock';
    }>;
    meta?: {
        title?: string | null;
        /**
         * Maximum upload file size: 12MB. Recommended file size for images is <500KB.
         */
        image?: string | null | Media;
        description?: string | null;
    };
    publishedAt?: string | null;
    /**
     * When enabled, the slug will auto-generate from the title field on save and autosave.
     */
    generateSlug?: boolean | null;
    slug: string;
    _status?: 'draft' | 'published';
};

/**
 * Page
 *
 * Page
 */
export type PagePatchRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    title?: string;
    hero?: {
        type: 'none' | 'highImpact' | 'mediumImpact' | 'lowImpact';
        richText?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        links?: Array<{
            link: {
                type?: 'reference' | 'custom';
                newTab?: boolean | null;
                reference?: {
                    relationTo: 'pages';
                    value: string | Page;
                } | null | {
                    relationTo: 'posts';
                    value: string | Post;
                };
                url?: string | null;
                label: string;
                /**
                 * Choose how the link should be rendered.
                 */
                appearance?: 'default' | 'outline';
            };
            id?: string | null;
        }> | null;
        media?: string | null | Media;
    };
    layout?: Array<{
        richText?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        links?: Array<{
            link: {
                type?: 'reference' | 'custom';
                newTab?: boolean | null;
                reference?: {
                    relationTo: 'pages';
                    value: string | Page;
                } | null | {
                    relationTo: 'posts';
                    value: string | Post;
                };
                url?: string | null;
                label: string;
                /**
                 * Choose how the link should be rendered.
                 */
                appearance?: 'default' | 'outline';
            };
            id?: string | null;
        }> | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'cta';
    } | {
        columns?: Array<{
            size?: 'oneThird' | 'half' | 'twoThirds' | 'full';
            richText?: {
                root: {
                    type: string;
                    children: Array<{
                        type: string;
                        version: number;
                        [key: string]: unknown | string | number;
                    }>;
                    direction: 'ltr' | 'rtl' | null;
                    format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                    indent: number;
                    version: number;
                };
            } | null;
            enableLink?: boolean | null;
            link?: {
                type?: 'reference' | 'custom';
                newTab?: boolean | null;
                reference?: {
                    relationTo: 'pages';
                    value: string | Page;
                } | null | {
                    relationTo: 'posts';
                    value: string | Post;
                };
                url?: string | null;
                label: string;
                /**
                 * Choose how the link should be rendered.
                 */
                appearance?: 'default' | 'outline';
            };
            id?: string | null;
        }> | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'content';
    } | {
        media: string | Media;
        id?: string | null;
        blockName?: string | null;
        blockType: 'mediaBlock';
    } | {
        introContent?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        populateBy?: 'collection' | 'selection';
        relationTo?: 'posts';
        categories?: Array<string | Category> | null;
        limit?: number | null;
        selectedDocs?: Array<{
            relationTo: 'posts';
            value: string | Post;
        }> | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'archive';
    } | {
        form: string | Form;
        enableIntro?: boolean | null;
        introContent?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        id?: string | null;
        blockName?: string | null;
        blockType: 'formBlock';
    }>;
    meta?: {
        title?: string | null;
        /**
         * Maximum upload file size: 12MB. Recommended file size for images is <500KB.
         */
        image?: string | null | Media;
        description?: string | null;
    };
    publishedAt?: string | null;
    /**
     * When enabled, the slug will auto-generate from the title field on save and autosave.
     */
    generateSlug?: boolean | null;
    slug?: string;
    _status?: 'draft' | 'published';
};

/**
 * Post
 *
 * Post
 */
export type PostRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    title: string;
    heroImage?: string | null | Media;
    content: {
        root: {
            type: string;
            children: Array<{
                type: string;
                version: number;
                [key: string]: unknown | string | number;
            }>;
            direction: 'ltr' | 'rtl' | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
        };
    };
    content_html?: string | null;
    relatedPosts?: Array<string | Post> | null;
    categories?: Array<string | Category> | null;
    meta?: {
        title?: string | null;
        /**
         * Maximum upload file size: 12MB. Recommended file size for images is <500KB.
         */
        image?: string | null | Media;
        description?: string | null;
    };
    publishedAt?: string | null;
    /**
     * ID of the users
     */
    authors?: string;
    populatedAuthors?: Array<{
        id?: string | null;
        name?: string | null;
    }> | null;
    /**
     * When enabled, the slug will auto-generate from the title field on save and autosave.
     */
    generateSlug?: boolean | null;
    slug: string;
    _status?: 'draft' | 'published';
};

/**
 * Post
 *
 * Post
 */
export type PostPatchRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    title?: string;
    heroImage?: string | null | Media;
    content?: {
        root: {
            type: string;
            children: Array<{
                type: string;
                version: number;
                [key: string]: unknown | string | number;
            }>;
            direction: 'ltr' | 'rtl' | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
        };
    };
    content_html?: string | null;
    relatedPosts?: Array<string | Post> | null;
    categories?: Array<string | Category> | null;
    meta?: {
        title?: string | null;
        /**
         * Maximum upload file size: 12MB. Recommended file size for images is <500KB.
         */
        image?: string | null | Media;
        description?: string | null;
    };
    publishedAt?: string | null;
    /**
     * ID of the users
     */
    authors?: string;
    populatedAuthors?: Array<{
        id?: string | null;
        name?: string | null;
    }> | null;
    /**
     * When enabled, the slug will auto-generate from the title field on save and autosave.
     */
    generateSlug?: boolean | null;
    slug?: string;
    _status?: 'draft' | 'published';
};

/**
 * Media
 *
 * Media
 */
export type MediaRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    alt?: string | null;
    caption?: {
        root: {
            type: string;
            children: Array<{
                type: string;
                version: number;
                [key: string]: unknown | string | number;
            }>;
            direction: 'ltr' | 'rtl' | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
        };
    } | null;
    /**
     * ID of the payload-folders
     */
    folder?: 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;
        };
    };
};

/**
 * Media
 *
 * Media
 */
export type MediaPatchRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    alt?: string | null;
    caption?: {
        root: {
            type: string;
            children: Array<{
                type: string;
                version: number;
                [key: string]: unknown | string | number;
            }>;
            direction: 'ltr' | 'rtl' | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
        };
    } | null;
    /**
     * ID of the payload-folders
     */
    folder?: 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;
        };
    };
};

/**
 * Category
 *
 * Category
 */
export type CategoryRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    title: string;
    /**
     * When enabled, the slug will auto-generate from the title field on save and autosave.
     */
    generateSlug?: boolean | null;
    slug: string;
    /**
     * ID of the categories
     */
    parent?: string;
    breadcrumbs?: Array<{
        doc?: string | null | Category;
        url?: string | null;
        label?: string | null;
        id?: string | null;
    }> | null;
};

/**
 * Category
 *
 * Category
 */
export type CategoryPatchRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    title?: string;
    /**
     * When enabled, the slug will auto-generate from the title field on save and autosave.
     */
    generateSlug?: boolean | null;
    slug?: string;
    /**
     * ID of the categories
     */
    parent?: string;
    breadcrumbs?: Array<{
        doc?: string | null | Category;
        url?: string | null;
        label?: string | null;
        id?: string | null;
    }> | null;
};

/**
 * User
 *
 * User
 */
export type UserRequestBody = {
    email: string;
    emailVerified?: string | null;
    name?: string | null;
    image?: string | null;
    displayName?: string | null;
    tenants?: Array<{
        tenant: string | Tenant;
        id?: string | null;
    }> | null;
    accounts?: Array<{
        provider: string;
        providerAccountId: string;
        type: 'oidc' | 'oauth' | 'email' | 'webauthn';
        id?: string | null;
    }> | null;
};

/**
 * User
 *
 * User
 */
export type UserPatchRequestBody = {
    email?: string;
    emailVerified?: string | null;
    name?: string | null;
    image?: string | null;
    displayName?: string | null;
    tenants?: Array<{
        tenant: string | Tenant;
        id?: string | null;
    }> | null;
    accounts?: Array<{
        provider: string;
        providerAccountId: string;
        type: 'oidc' | 'oauth' | 'email' | 'webauthn';
        id?: string | null;
    }> | null;
};

/**
 * Tenant
 *
 * 租户基本信息管理
 */
export type TenantRequestBody = {
    /**
     * 租户显示名称
     */
    name?: string | null;
    /**
     * 租户标识符（用于 API 认证时的 X-Tenant-Slug 请求头）
     */
    slug: string;
    apiKeyEncrypted?: string | null;
    /**
     * 这是该租户的主 API Key。
     */
    apiKeyDisplay?: string | null;
};

/**
 * Tenant
 *
 * 租户基本信息管理
 */
export type TenantPatchRequestBody = {
    /**
     * 租户显示名称
     */
    name?: string | null;
    /**
     * 租户标识符（用于 API 认证时的 X-Tenant-Slug 请求头）
     */
    slug?: string;
    apiKeyEncrypted?: string | null;
    /**
     * 这是该租户的主 API Key。
     */
    apiKeyDisplay?: string | null;
};

/**
 * Redirect
 *
 * Redirect
 */
export type RedirectRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    /**
     * You will need to rebuild the website when changing this field.
     */
    from: string;
    to?: {
        type?: 'reference' | 'custom';
        reference?: {
            relationTo: 'pages';
            value: string | Page;
        } | null | {
            relationTo: 'posts';
            value: string | Post;
        };
        url?: string | null;
    };
};

/**
 * Redirect
 *
 * Redirect
 */
export type RedirectPatchRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    /**
     * You will need to rebuild the website when changing this field.
     */
    from?: string;
    to?: {
        type?: 'reference' | 'custom';
        reference?: {
            relationTo: 'pages';
            value: string | Page;
        } | null | {
            relationTo: 'posts';
            value: string | Post;
        };
        url?: string | null;
    };
};

/**
 * Form
 *
 * Form
 */
export type FormRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    title: string;
    fields?: Array<{
        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: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | 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?: Array<{
            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';
    }> | null;
    submitButtonLabel?: string | null;
    /**
     * Choose whether to display an on-page message or redirect to a different page after they submit the form.
     */
    confirmationType?: 'message' | 'redirect';
    confirmationMessage?: {
        root: {
            type: string;
            children: Array<{
                type: string;
                version: number;
                [key: string]: unknown | string | number;
            }>;
            direction: 'ltr' | 'rtl' | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
        };
    } | null;
    redirect?: {
        url: string;
    };
    /**
     * 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?: Array<{
        emailTo?: string | null;
        cc?: string | null;
        bcc?: string | null;
        replyTo?: string | null;
        emailFrom?: string | null;
        subject: string;
        /**
         * Enter the message that should be sent in this email.
         */
        message?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        id?: string | null;
    }> | null;
};

/**
 * Form
 *
 * Form
 */
export type FormPatchRequestBody = {
    /**
     * ID of the tenants
     */
    tenant?: string;
    title?: string;
    fields?: Array<{
        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: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | 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?: Array<{
            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';
    }> | null;
    submitButtonLabel?: string | null;
    /**
     * Choose whether to display an on-page message or redirect to a different page after they submit the form.
     */
    confirmationType?: 'message' | 'redirect';
    confirmationMessage?: {
        root: {
            type: string;
            children: Array<{
                type: string;
                version: number;
                [key: string]: unknown | string | number;
            }>;
            direction: 'ltr' | 'rtl' | null;
            format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
            indent: number;
            version: number;
        };
    } | null;
    redirect?: {
        url: string;
    };
    /**
     * 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?: Array<{
        emailTo?: string | null;
        cc?: string | null;
        bcc?: string | null;
        replyTo?: string | null;
        emailFrom?: string | null;
        subject: string;
        /**
         * Enter the message that should be sent in this email.
         */
        message?: {
            root: {
                type: string;
                children: Array<{
                    type: string;
                    version: number;
                    [key: string]: unknown | string | number;
                }>;
                direction: 'ltr' | 'rtl' | null;
                format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
                indent: number;
                version: number;
            };
        } | null;
        id?: string | null;
    }> | null;
};

/**
 * FormSubmission
 *
 * Form Submission
 */
export type FormSubmissionRequestBody = {
    /**
     * ID of the forms
     */
    form: string;
    submissionData?: Array<{
        field: string;
        value: string;
        id?: string | null;
    }> | null;
};

/**
 * FormSubmission
 *
 * Form Submission
 */
export type FormSubmissionPatchRequestBody = {
    /**
     * ID of the forms
     */
    form?: string;
    submissionData?: Array<{
        field: string;
        value: string;
        id?: string | null;
    }> | null;
};

/**
 * Search
 *
 * This is a collection of automatically created search results. These results are used by the global site search and will be updated automatically as documents in the CMS are created or updated.
 */
export type SearchResultRequestBody = {
    title?: string | null;
    priority?: number | null;
    /**
     * ID of the posts
     */
    doc: string;
    slug?: string | null;
    meta?: {
        title?: string | null;
        description?: string | null;
        image?: string | null | Media;
    };
    categories?: Array<{
        relationTo?: string | null;
        categoryID?: string | null;
        title?: string | null;
        id?: string | null;
    }> | null;
};

/**
 * Search
 *
 * This is a collection of automatically created search results. These results are used by the global site search and will be updated automatically as documents in the CMS are created or updated.
 */
export type SearchResultPatchRequestBody = {
    title?: string | null;
    priority?: number | null;
    /**
     * ID of the posts
     */
    doc?: string;
    slug?: string | null;
    meta?: {
        title?: string | null;
        description?: string | null;
        image?: string | null | Media;
    };
    categories?: Array<{
        relationTo?: string | null;
        categoryID?: string | null;
        title?: string | null;
        id?: string | null;
    }> | null;
};

/**
 * PayloadKv
 *
 * Payload Kv
 */
export type PayloadKvRequestBody = {
    key: string;
    data: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
};

/**
 * PayloadKv
 *
 * Payload Kv
 */
export type PayloadKvPatchRequestBody = {
    key?: string;
    data?: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
};

/**
 * PayloadJob
 *
 * Payload Job
 */
export type PayloadJobRequestBody = {
    /**
     * Input data provided to the job
     */
    input?: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
    taskStatus?: {
        [key: string]: unknown;
    } | Array<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?: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
    /**
     * Task execution log
     */
    log?: Array<{
        executedAt: string;
        completedAt: string;
        taskSlug: 'inline' | 'schedulePublish';
        taskID: string;
        input?: {
            [key: string]: unknown;
        } | Array<unknown> | string | number | boolean | null;
        output?: {
            [key: string]: unknown;
        } | Array<unknown> | string | number | boolean | null;
        state: 'failed' | 'succeeded';
        error?: {
            [key: string]: unknown;
        } | Array<unknown> | string | number | boolean | null;
        id?: string | null;
    }> | null;
    taskSlug?: 'inline' | 'schedulePublish';
    queue?: string | null;
    waitUntil?: string | null;
    processing?: boolean | null;
};

/**
 * PayloadJob
 *
 * Payload Job
 */
export type PayloadJobPatchRequestBody = {
    /**
     * Input data provided to the job
     */
    input?: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
    taskStatus?: {
        [key: string]: unknown;
    } | Array<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?: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
    /**
     * Task execution log
     */
    log?: Array<{
        executedAt: string;
        completedAt: string;
        taskSlug: 'inline' | 'schedulePublish';
        taskID: string;
        input?: {
            [key: string]: unknown;
        } | Array<unknown> | string | number | boolean | null;
        output?: {
            [key: string]: unknown;
        } | Array<unknown> | string | number | boolean | null;
        state: 'failed' | 'succeeded';
        error?: {
            [key: string]: unknown;
        } | Array<unknown> | string | number | boolean | null;
        id?: string | null;
    }> | null;
    taskSlug?: 'inline' | 'schedulePublish';
    queue?: string | null;
    waitUntil?: string | null;
    processing?: boolean | null;
};

/**
 * FolderInterface
 *
 * Folder
 */
export type FolderRequestBody = {
    name: string;
    /**
     * ID of the payload-folders
     */
    folder?: string;
    documentsAndFolders?: {
        docs?: Array<{
            relationTo?: 'payload-folders';
            value: string | Folder;
        } | {
            relationTo?: 'media';
            value: string | Media;
        }>;
        hasNextPage?: boolean;
        totalDocs?: number;
    };
    folderType?: Array<'media'> | null;
};

/**
 * FolderInterface
 *
 * Folder
 */
export type FolderPatchRequestBody = {
    name?: string;
    /**
     * ID of the payload-folders
     */
    folder?: string;
    documentsAndFolders?: {
        docs?: Array<{
            relationTo?: 'payload-folders';
            value: string | Folder;
        } | {
            relationTo?: 'media';
            value: string | Media;
        }>;
        hasNextPage?: boolean;
        totalDocs?: number;
    };
    folderType?: Array<'media'> | null;
};

/**
 * PayloadLockedDocument
 *
 * Payload Locked Document
 */
export type PayloadLockedDocumentRequestBody = {
    /**
     * ID of the pages/posts/media/categories/users/tenants/redirects/forms/form-submissions/search/payload-folders
     */
    document?: string;
    globalSlug?: string | null;
    /**
     * ID of the users
     */
    user: string;
};

/**
 * PayloadLockedDocument
 *
 * Payload Locked Document
 */
export type PayloadLockedDocumentPatchRequestBody = {
    /**
     * ID of the pages/posts/media/categories/users/tenants/redirects/forms/form-submissions/search/payload-folders
     */
    document?: string;
    globalSlug?: string | null;
    /**
     * ID of the users
     */
    user?: string;
};

/**
 * PayloadPreference
 *
 * Payload Preference
 */
export type PayloadPreferenceRequestBody = {
    /**
     * ID of the users
     */
    user: string;
    key?: string | null;
    value?: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
};

/**
 * PayloadPreference
 *
 * Payload Preference
 */
export type PayloadPreferencePatchRequestBody = {
    /**
     * ID of the users
     */
    user?: string;
    key?: string | null;
    value?: {
        [key: string]: unknown;
    } | Array<unknown> | string | number | boolean | null;
};

/**
 * PayloadMigration
 *
 * Payload Migration
 */
export type PayloadMigrationRequestBody = {
    name?: string | null;
    batch?: number | null;
};

/**
 * PayloadMigration
 *
 * Payload Migration
 */
export type PayloadMigrationPatchRequestBody = {
    name?: string | null;
    batch?: number | null;
};

/**
 * Header
 */
export type HeaderRequestBody = HeaderWrite;

/**
 * Footer
 */
export type FooterRequestBody = FooterWrite;

export type ListPagesData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'title' | '-title' | 'publishedAt' | '-publishedAt' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (PageQueryOperations | PageQueryOperationsAnd | PageQueryOperationsOr);
    };
    url: '/api/pages';
};

export type ListPagesResponses = {
    /**
     * List of Pages
     */
    200: {
        docs: Array<Page>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListPagesResponse = ListPagesResponses[keyof ListPagesResponses];

export type CreatePageData = {
    /**
     * Page
     */
    body?: PageRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/pages';
};

export type CreatePageResponses = {
    /**
     * Page object
     */
    201: {
        message: string;
        doc: Page & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreatePageResponse = CreatePageResponses[keyof CreatePageResponses];

export type DeletePageData = {
    body?: never;
    path: {
        /**
         * ID of the Page
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/pages/{id}';
};

export type DeletePageErrors = {
    /**
     * Page not found
     */
    404: unknown;
};

export type DeletePageResponses = {
    /**
     * Page object
     */
    200: Page;
};

export type DeletePageResponse = DeletePageResponses[keyof DeletePageResponses];

export type FindPageByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Page
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/pages/{id}';
};

export type FindPageByIdErrors = {
    /**
     * Page not found
     */
    404: unknown;
};

export type FindPageByIdResponses = {
    /**
     * Page object
     */
    200: Page;
};

export type FindPageByIdResponse = FindPageByIdResponses[keyof FindPageByIdResponses];

export type UpdatePageData = {
    /**
     * Page
     */
    body?: PagePatchRequestBody;
    path: {
        /**
         * ID of the Page
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/pages/{id}';
};

export type UpdatePageErrors = {
    /**
     * Page not found
     */
    404: unknown;
};

export type UpdatePageResponses = {
    /**
     * Page object
     */
    200: Page;
};

export type UpdatePageResponse = UpdatePageResponses[keyof UpdatePageResponses];

export type ListPostsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'title' | '-title' | 'publishedAt' | '-publishedAt' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (PostQueryOperations | PostQueryOperationsAnd | PostQueryOperationsOr);
    };
    url: '/api/posts';
};

export type ListPostsResponses = {
    /**
     * List of Posts
     */
    200: {
        docs: Array<Post>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListPostsResponse = ListPostsResponses[keyof ListPostsResponses];

export type CreatePostData = {
    /**
     * Post
     */
    body?: PostRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/posts';
};

export type CreatePostResponses = {
    /**
     * Post object
     */
    201: {
        message: string;
        doc: Post & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreatePostResponse = CreatePostResponses[keyof CreatePostResponses];

export type DeletePostData = {
    body?: never;
    path: {
        /**
         * ID of the Post
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/posts/{id}';
};

export type DeletePostErrors = {
    /**
     * Post not found
     */
    404: unknown;
};

export type DeletePostResponses = {
    /**
     * Post object
     */
    200: Post;
};

export type DeletePostResponse = DeletePostResponses[keyof DeletePostResponses];

export type FindPostByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Post
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/posts/{id}';
};

export type FindPostByIdErrors = {
    /**
     * Post not found
     */
    404: unknown;
};

export type FindPostByIdResponses = {
    /**
     * Post object
     */
    200: Post;
};

export type FindPostByIdResponse = FindPostByIdResponses[keyof FindPostByIdResponses];

export type UpdatePostData = {
    /**
     * Post
     */
    body?: PostPatchRequestBody;
    path: {
        /**
         * ID of the Post
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/posts/{id}';
};

export type UpdatePostErrors = {
    /**
     * Post not found
     */
    404: unknown;
};

export type UpdatePostResponses = {
    /**
     * Post object
     */
    200: Post;
};

export type UpdatePostResponse = UpdatePostResponses[keyof UpdatePostResponses];

export type ListMediaData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'alt' | '-alt' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt' | 'url' | '-url' | 'thumbnailURL' | '-thumbnailURL' | 'filename' | '-filename' | 'mimeType' | '-mimeType' | 'filesize' | '-filesize' | 'width' | '-width' | 'height' | '-height' | 'focalX' | '-focalX' | 'focalY' | '-focalY';
        where?: {
            [key: string]: unknown;
        } & (MediaQueryOperations | MediaQueryOperationsAnd | MediaQueryOperationsOr);
    };
    url: '/api/media';
};

export type ListMediaResponses = {
    /**
     * List of Media
     */
    200: {
        docs: Array<Media>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListMediaResponse = ListMediaResponses[keyof ListMediaResponses];

export type CreateMediaData = {
    /**
     * Media
     */
    body?: MediaRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/media';
};

export type CreateMediaResponses = {
    /**
     * Media object
     */
    201: {
        message: string;
        doc: Media & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreateMediaResponse = CreateMediaResponses[keyof CreateMediaResponses];

export type DeleteMediaData = {
    body?: never;
    path: {
        /**
         * ID of the Media
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/media/{id}';
};

export type DeleteMediaErrors = {
    /**
     * Media not found
     */
    404: unknown;
};

export type DeleteMediaResponses = {
    /**
     * Media object
     */
    200: Media;
};

export type DeleteMediaResponse = DeleteMediaResponses[keyof DeleteMediaResponses];

export type FindMediaByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Media
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/media/{id}';
};

export type FindMediaByIdErrors = {
    /**
     * Media not found
     */
    404: unknown;
};

export type FindMediaByIdResponses = {
    /**
     * Media object
     */
    200: Media;
};

export type FindMediaByIdResponse = FindMediaByIdResponses[keyof FindMediaByIdResponses];

export type UpdateMediaData = {
    /**
     * Media
     */
    body?: MediaPatchRequestBody;
    path: {
        /**
         * ID of the Media
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/media/{id}';
};

export type UpdateMediaErrors = {
    /**
     * Media not found
     */
    404: unknown;
};

export type UpdateMediaResponses = {
    /**
     * Media object
     */
    200: Media;
};

export type UpdateMediaResponse = UpdateMediaResponses[keyof UpdateMediaResponses];

export type ListCategoriesData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'title' | '-title' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (CategoryQueryOperations | CategoryQueryOperationsAnd | CategoryQueryOperationsOr);
    };
    url: '/api/categories';
};

export type ListCategoriesResponses = {
    /**
     * List of Categories
     */
    200: {
        docs: Array<Category>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListCategoriesResponse = ListCategoriesResponses[keyof ListCategoriesResponses];

export type CreateCategoryData = {
    /**
     * Category
     */
    body?: CategoryRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/categories';
};

export type CreateCategoryResponses = {
    /**
     * Category object
     */
    201: {
        message: string;
        doc: Category & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreateCategoryResponse = CreateCategoryResponses[keyof CreateCategoryResponses];

export type DeleteCategoryData = {
    body?: never;
    path: {
        /**
         * ID of the Category
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/categories/{id}';
};

export type DeleteCategoryErrors = {
    /**
     * Category not found
     */
    404: unknown;
};

export type DeleteCategoryResponses = {
    /**
     * Category object
     */
    200: Category;
};

export type DeleteCategoryResponse = DeleteCategoryResponses[keyof DeleteCategoryResponses];

export type FindCategoryByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Category
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/categories/{id}';
};

export type FindCategoryByIdErrors = {
    /**
     * Category not found
     */
    404: unknown;
};

export type FindCategoryByIdResponses = {
    /**
     * Category object
     */
    200: Category;
};

export type FindCategoryByIdResponse = FindCategoryByIdResponses[keyof FindCategoryByIdResponses];

export type UpdateCategoryData = {
    /**
     * Category
     */
    body?: CategoryPatchRequestBody;
    path: {
        /**
         * ID of the Category
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/categories/{id}';
};

export type UpdateCategoryErrors = {
    /**
     * Category not found
     */
    404: unknown;
};

export type UpdateCategoryResponses = {
    /**
     * Category object
     */
    200: Category;
};

export type UpdateCategoryResponse = UpdateCategoryResponses[keyof UpdateCategoryResponses];

export type ListUsersData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'id' | '-id' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (UserQueryOperations | UserQueryOperationsAnd | UserQueryOperationsOr);
    };
    url: '/api/users';
};

export type ListUsersResponses = {
    /**
     * List of Users
     */
    200: {
        docs: Array<User>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListUsersResponse = ListUsersResponses[keyof ListUsersResponses];

export type CreateUserData = {
    /**
     * User
     */
    body?: UserRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/users';
};

export type CreateUserResponses = {
    /**
     * User object
     */
    201: {
        message: string;
        doc: User & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreateUserResponse = CreateUserResponses[keyof CreateUserResponses];

export type DeleteUserData = {
    body?: never;
    path: {
        /**
         * ID of the User
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/users/{id}';
};

export type DeleteUserErrors = {
    /**
     * User not found
     */
    404: unknown;
};

export type DeleteUserResponses = {
    /**
     * User object
     */
    200: User;
};

export type DeleteUserResponse = DeleteUserResponses[keyof DeleteUserResponses];

export type FindUserByIdData = {
    body?: never;
    path: {
        /**
         * ID of the User
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/users/{id}';
};

export type FindUserByIdErrors = {
    /**
     * User not found
     */
    404: unknown;
};

export type FindUserByIdResponses = {
    /**
     * User object
     */
    200: User;
};

export type FindUserByIdResponse = FindUserByIdResponses[keyof FindUserByIdResponses];

export type UpdateUserData = {
    /**
     * User
     */
    body?: UserPatchRequestBody;
    path: {
        /**
         * ID of the User
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/users/{id}';
};

export type UpdateUserErrors = {
    /**
     * User not found
     */
    404: unknown;
};

export type UpdateUserResponses = {
    /**
     * User object
     */
    200: User;
};

export type UpdateUserResponse = UpdateUserResponses[keyof UpdateUserResponses];

export type ListTenantsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'name' | '-name' | 'slug' | '-slug' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (TenantQueryOperations | TenantQueryOperationsAnd | TenantQueryOperationsOr);
    };
    url: '/api/tenants';
};

export type ListTenantsResponses = {
    /**
     * List of Tenants
     */
    200: {
        docs: Array<Tenant>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListTenantsResponse = ListTenantsResponses[keyof ListTenantsResponses];

export type CreateTenantData = {
    /**
     * Tenant
     */
    body?: TenantRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/tenants';
};

export type CreateTenantResponses = {
    /**
     * Tenant object
     */
    201: {
        message: string;
        doc: Tenant & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreateTenantResponse = CreateTenantResponses[keyof CreateTenantResponses];

export type DeleteTenantData = {
    body?: never;
    path: {
        /**
         * ID of the Tenant
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/tenants/{id}';
};

export type DeleteTenantErrors = {
    /**
     * Tenant not found
     */
    404: unknown;
};

export type DeleteTenantResponses = {
    /**
     * Tenant object
     */
    200: Tenant;
};

export type DeleteTenantResponse = DeleteTenantResponses[keyof DeleteTenantResponses];

export type FindTenantByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Tenant
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/tenants/{id}';
};

export type FindTenantByIdErrors = {
    /**
     * Tenant not found
     */
    404: unknown;
};

export type FindTenantByIdResponses = {
    /**
     * Tenant object
     */
    200: Tenant;
};

export type FindTenantByIdResponse = FindTenantByIdResponses[keyof FindTenantByIdResponses];

export type UpdateTenantData = {
    /**
     * Tenant
     */
    body?: TenantPatchRequestBody;
    path: {
        /**
         * ID of the Tenant
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/tenants/{id}';
};

export type UpdateTenantErrors = {
    /**
     * Tenant not found
     */
    404: unknown;
};

export type UpdateTenantResponses = {
    /**
     * Tenant object
     */
    200: Tenant;
};

export type UpdateTenantResponse = UpdateTenantResponses[keyof UpdateTenantResponses];

export type ListRedirectsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'from' | '-from' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (RedirectQueryOperations | RedirectQueryOperationsAnd | RedirectQueryOperationsOr);
    };
    url: '/api/redirects';
};

export type ListRedirectsResponses = {
    /**
     * List of Redirects
     */
    200: {
        docs: Array<Redirect>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListRedirectsResponse = ListRedirectsResponses[keyof ListRedirectsResponses];

export type CreateRedirectData = {
    /**
     * Redirect
     */
    body?: RedirectRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/redirects';
};

export type CreateRedirectResponses = {
    /**
     * Redirect object
     */
    201: {
        message: string;
        doc: Redirect & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreateRedirectResponse = CreateRedirectResponses[keyof CreateRedirectResponses];

export type DeleteRedirectData = {
    body?: never;
    path: {
        /**
         * ID of the Redirect
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/redirects/{id}';
};

export type DeleteRedirectErrors = {
    /**
     * Redirect not found
     */
    404: unknown;
};

export type DeleteRedirectResponses = {
    /**
     * Redirect object
     */
    200: Redirect;
};

export type DeleteRedirectResponse = DeleteRedirectResponses[keyof DeleteRedirectResponses];

export type FindRedirectByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Redirect
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/redirects/{id}';
};

export type FindRedirectByIdErrors = {
    /**
     * Redirect not found
     */
    404: unknown;
};

export type FindRedirectByIdResponses = {
    /**
     * Redirect object
     */
    200: Redirect;
};

export type FindRedirectByIdResponse = FindRedirectByIdResponses[keyof FindRedirectByIdResponses];

export type UpdateRedirectData = {
    /**
     * Redirect
     */
    body?: RedirectPatchRequestBody;
    path: {
        /**
         * ID of the Redirect
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/redirects/{id}';
};

export type UpdateRedirectErrors = {
    /**
     * Redirect not found
     */
    404: unknown;
};

export type UpdateRedirectResponses = {
    /**
     * Redirect object
     */
    200: Redirect;
};

export type UpdateRedirectResponse = UpdateRedirectResponses[keyof UpdateRedirectResponses];

export type ListFormsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'title' | '-title' | 'submitButtonLabel' | '-submitButtonLabel' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (FormQueryOperations | FormQueryOperationsAnd | FormQueryOperationsOr);
    };
    url: '/api/forms';
};

export type ListFormsResponses = {
    /**
     * List of Forms
     */
    200: {
        docs: Array<Form>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListFormsResponse = ListFormsResponses[keyof ListFormsResponses];

export type CreateFormData = {
    /**
     * Form
     */
    body?: FormRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/forms';
};

export type CreateFormResponses = {
    /**
     * Form object
     */
    201: {
        message: string;
        doc: Form & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreateFormResponse = CreateFormResponses[keyof CreateFormResponses];

export type DeleteFormData = {
    body?: never;
    path: {
        /**
         * ID of the Form
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/forms/{id}';
};

export type DeleteFormErrors = {
    /**
     * Form not found
     */
    404: unknown;
};

export type DeleteFormResponses = {
    /**
     * Form object
     */
    200: Form;
};

export type DeleteFormResponse = DeleteFormResponses[keyof DeleteFormResponses];

export type FindFormByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Form
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/forms/{id}';
};

export type FindFormByIdErrors = {
    /**
     * Form not found
     */
    404: unknown;
};

export type FindFormByIdResponses = {
    /**
     * Form object
     */
    200: Form;
};

export type FindFormByIdResponse = FindFormByIdResponses[keyof FindFormByIdResponses];

export type UpdateFormData = {
    /**
     * Form
     */
    body?: FormPatchRequestBody;
    path: {
        /**
         * ID of the Form
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/forms/{id}';
};

export type UpdateFormErrors = {
    /**
     * Form not found
     */
    404: unknown;
};

export type UpdateFormResponses = {
    /**
     * Form object
     */
    200: Form;
};

export type UpdateFormResponse = UpdateFormResponses[keyof UpdateFormResponses];

export type ListFormSubmissionsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (FormSubmissionQueryOperations | FormSubmissionQueryOperationsAnd | FormSubmissionQueryOperationsOr);
    };
    url: '/api/form-submissions';
};

export type ListFormSubmissionsResponses = {
    /**
     * List of Form Submissions
     */
    200: {
        docs: Array<FormSubmission>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListFormSubmissionsResponse = ListFormSubmissionsResponses[keyof ListFormSubmissionsResponses];

export type CreateFormSubmissionData = {
    /**
     * Form Submission
     */
    body?: FormSubmissionRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/form-submissions';
};

export type CreateFormSubmissionResponses = {
    /**
     * Form Submission object
     */
    201: {
        message: string;
        doc: FormSubmission & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreateFormSubmissionResponse = CreateFormSubmissionResponses[keyof CreateFormSubmissionResponses];

export type DeleteFormSubmissionData = {
    body?: never;
    path: {
        /**
         * ID of the Form Submission
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/form-submissions/{id}';
};

export type DeleteFormSubmissionErrors = {
    /**
     * Form Submission not found
     */
    404: unknown;
};

export type DeleteFormSubmissionResponses = {
    /**
     * Form Submission object
     */
    200: FormSubmission;
};

export type DeleteFormSubmissionResponse = DeleteFormSubmissionResponses[keyof DeleteFormSubmissionResponses];

export type FindFormSubmissionByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Form Submission
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/form-submissions/{id}';
};

export type FindFormSubmissionByIdErrors = {
    /**
     * Form Submission not found
     */
    404: unknown;
};

export type FindFormSubmissionByIdResponses = {
    /**
     * Form Submission object
     */
    200: FormSubmission;
};

export type FindFormSubmissionByIdResponse = FindFormSubmissionByIdResponses[keyof FindFormSubmissionByIdResponses];

export type UpdateFormSubmissionData = {
    /**
     * Form Submission
     */
    body?: FormSubmissionPatchRequestBody;
    path: {
        /**
         * ID of the Form Submission
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/form-submissions/{id}';
};

export type UpdateFormSubmissionErrors = {
    /**
     * Form Submission not found
     */
    404: unknown;
};

export type UpdateFormSubmissionResponses = {
    /**
     * Form Submission object
     */
    200: FormSubmission;
};

export type UpdateFormSubmissionResponse = UpdateFormSubmissionResponses[keyof UpdateFormSubmissionResponses];

export type ListSearchResultsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'title' | '-title' | 'priority' | '-priority' | 'slug' | '-slug' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (SearchResultQueryOperations | SearchResultQueryOperationsAnd | SearchResultQueryOperationsOr);
    };
    url: '/api/search';
};

export type ListSearchResultsResponses = {
    /**
     * List of Search Results
     */
    200: {
        docs: Array<SearchResult>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListSearchResultsResponse = ListSearchResultsResponses[keyof ListSearchResultsResponses];

export type CreateSearchResultData = {
    /**
     * Search Result
     */
    body?: SearchResultRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/search';
};

export type CreateSearchResultResponses = {
    /**
     * Search Result object
     */
    201: {
        message: string;
        doc: SearchResult & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreateSearchResultResponse = CreateSearchResultResponses[keyof CreateSearchResultResponses];

export type DeleteSearchResultData = {
    body?: never;
    path: {
        /**
         * ID of the Search Result
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/search/{id}';
};

export type DeleteSearchResultErrors = {
    /**
     * Search Result not found
     */
    404: unknown;
};

export type DeleteSearchResultResponses = {
    /**
     * Search Result object
     */
    200: SearchResult;
};

export type DeleteSearchResultResponse = DeleteSearchResultResponses[keyof DeleteSearchResultResponses];

export type FindSearchResultByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Search Result
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/search/{id}';
};

export type FindSearchResultByIdErrors = {
    /**
     * Search Result not found
     */
    404: unknown;
};

export type FindSearchResultByIdResponses = {
    /**
     * Search Result object
     */
    200: SearchResult;
};

export type FindSearchResultByIdResponse = FindSearchResultByIdResponses[keyof FindSearchResultByIdResponses];

export type UpdateSearchResultData = {
    /**
     * Search Result
     */
    body?: SearchResultPatchRequestBody;
    path: {
        /**
         * ID of the Search Result
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/search/{id}';
};

export type UpdateSearchResultErrors = {
    /**
     * Search Result not found
     */
    404: unknown;
};

export type UpdateSearchResultResponses = {
    /**
     * Search Result object
     */
    200: SearchResult;
};

export type UpdateSearchResultResponse = UpdateSearchResultResponses[keyof UpdateSearchResultResponses];

export type ListPayloadKvsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'key' | '-key';
        where?: {
            [key: string]: unknown;
        } & (PayloadKvQueryOperations | PayloadKvQueryOperationsAnd | PayloadKvQueryOperationsOr);
    };
    url: '/api/payload-kv';
};

export type ListPayloadKvsResponses = {
    /**
     * List of Payload Kvs
     */
    200: {
        docs: Array<PayloadKv>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListPayloadKvsResponse = ListPayloadKvsResponses[keyof ListPayloadKvsResponses];

export type CreatePayloadKvData = {
    /**
     * Payload Kv
     */
    body?: PayloadKvRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/payload-kv';
};

export type CreatePayloadKvResponses = {
    /**
     * Payload Kv object
     */
    201: {
        message: string;
        doc: PayloadKv & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreatePayloadKvResponse = CreatePayloadKvResponses[keyof CreatePayloadKvResponses];

export type DeletePayloadKvData = {
    body?: never;
    path: {
        /**
         * ID of the Payload Kv
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-kv/{id}';
};

export type DeletePayloadKvErrors = {
    /**
     * Payload Kv not found
     */
    404: unknown;
};

export type DeletePayloadKvResponses = {
    /**
     * Payload Kv object
     */
    200: PayloadKv;
};

export type DeletePayloadKvResponse = DeletePayloadKvResponses[keyof DeletePayloadKvResponses];

export type FindPayloadKvByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Payload Kv
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-kv/{id}';
};

export type FindPayloadKvByIdErrors = {
    /**
     * Payload Kv not found
     */
    404: unknown;
};

export type FindPayloadKvByIdResponses = {
    /**
     * Payload Kv object
     */
    200: PayloadKv;
};

export type FindPayloadKvByIdResponse = FindPayloadKvByIdResponses[keyof FindPayloadKvByIdResponses];

export type UpdatePayloadKvData = {
    /**
     * Payload Kv
     */
    body?: PayloadKvPatchRequestBody;
    path: {
        /**
         * ID of the Payload Kv
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-kv/{id}';
};

export type UpdatePayloadKvErrors = {
    /**
     * Payload Kv not found
     */
    404: unknown;
};

export type UpdatePayloadKvResponses = {
    /**
     * Payload Kv object
     */
    200: PayloadKv;
};

export type UpdatePayloadKvResponse = UpdatePayloadKvResponses[keyof UpdatePayloadKvResponses];

export type ListPayloadJobsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'queue' | '-queue' | 'waitUntil' | '-waitUntil' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (PayloadJobQueryOperations | PayloadJobQueryOperationsAnd | PayloadJobQueryOperationsOr);
    };
    url: '/api/payload-jobs';
};

export type ListPayloadJobsResponses = {
    /**
     * List of Payload Jobs
     */
    200: {
        docs: Array<PayloadJob>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListPayloadJobsResponse = ListPayloadJobsResponses[keyof ListPayloadJobsResponses];

export type CreatePayloadJobData = {
    /**
     * Payload Job
     */
    body?: PayloadJobRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/payload-jobs';
};

export type CreatePayloadJobResponses = {
    /**
     * Payload Job object
     */
    201: {
        message: string;
        doc: PayloadJob & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreatePayloadJobResponse = CreatePayloadJobResponses[keyof CreatePayloadJobResponses];

export type DeletePayloadJobData = {
    body?: never;
    path: {
        /**
         * ID of the Payload Job
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-jobs/{id}';
};

export type DeletePayloadJobErrors = {
    /**
     * Payload Job not found
     */
    404: unknown;
};

export type DeletePayloadJobResponses = {
    /**
     * Payload Job object
     */
    200: PayloadJob;
};

export type DeletePayloadJobResponse = DeletePayloadJobResponses[keyof DeletePayloadJobResponses];

export type FindPayloadJobByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Payload Job
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-jobs/{id}';
};

export type FindPayloadJobByIdErrors = {
    /**
     * Payload Job not found
     */
    404: unknown;
};

export type FindPayloadJobByIdResponses = {
    /**
     * Payload Job object
     */
    200: PayloadJob;
};

export type FindPayloadJobByIdResponse = FindPayloadJobByIdResponses[keyof FindPayloadJobByIdResponses];

export type UpdatePayloadJobData = {
    /**
     * Payload Job
     */
    body?: PayloadJobPatchRequestBody;
    path: {
        /**
         * ID of the Payload Job
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-jobs/{id}';
};

export type UpdatePayloadJobErrors = {
    /**
     * Payload Job not found
     */
    404: unknown;
};

export type UpdatePayloadJobResponses = {
    /**
     * Payload Job object
     */
    200: PayloadJob;
};

export type UpdatePayloadJobResponse = UpdatePayloadJobResponses[keyof UpdatePayloadJobResponses];

export type ListFoldersData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'name' | '-name' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (FolderQueryOperations | FolderQueryOperationsAnd | FolderQueryOperationsOr);
    };
    url: '/api/payload-folders';
};

export type ListFoldersResponses = {
    /**
     * List of Folders
     */
    200: {
        docs: Array<Folder>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListFoldersResponse = ListFoldersResponses[keyof ListFoldersResponses];

export type CreateFolderData = {
    /**
     * Folder
     */
    body?: FolderRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/payload-folders';
};

export type CreateFolderResponses = {
    /**
     * Folder object
     */
    201: {
        message: string;
        doc: Folder & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreateFolderResponse = CreateFolderResponses[keyof CreateFolderResponses];

export type DeleteFolderData = {
    body?: never;
    path: {
        /**
         * ID of the Folder
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-folders/{id}';
};

export type DeleteFolderErrors = {
    /**
     * Folder not found
     */
    404: unknown;
};

export type DeleteFolderResponses = {
    /**
     * Folder object
     */
    200: Folder;
};

export type DeleteFolderResponse = DeleteFolderResponses[keyof DeleteFolderResponses];

export type FindFolderByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Folder
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-folders/{id}';
};

export type FindFolderByIdErrors = {
    /**
     * Folder not found
     */
    404: unknown;
};

export type FindFolderByIdResponses = {
    /**
     * Folder object
     */
    200: Folder;
};

export type FindFolderByIdResponse = FindFolderByIdResponses[keyof FindFolderByIdResponses];

export type UpdateFolderData = {
    /**
     * Folder
     */
    body?: FolderPatchRequestBody;
    path: {
        /**
         * ID of the Folder
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-folders/{id}';
};

export type UpdateFolderErrors = {
    /**
     * Folder not found
     */
    404: unknown;
};

export type UpdateFolderResponses = {
    /**
     * Folder object
     */
    200: Folder;
};

export type UpdateFolderResponse = UpdateFolderResponses[keyof UpdateFolderResponses];

export type ListPayloadLockedDocumentsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'globalSlug' | '-globalSlug' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (PayloadLockedDocumentQueryOperations | PayloadLockedDocumentQueryOperationsAnd | PayloadLockedDocumentQueryOperationsOr);
    };
    url: '/api/payload-locked-documents';
};

export type ListPayloadLockedDocumentsResponses = {
    /**
     * List of Payload Locked Documents
     */
    200: {
        docs: Array<PayloadLockedDocument>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListPayloadLockedDocumentsResponse = ListPayloadLockedDocumentsResponses[keyof ListPayloadLockedDocumentsResponses];

export type CreatePayloadLockedDocumentData = {
    /**
     * Payload Locked Document
     */
    body?: PayloadLockedDocumentRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/payload-locked-documents';
};

export type CreatePayloadLockedDocumentResponses = {
    /**
     * Payload Locked Document object
     */
    201: {
        message: string;
        doc: PayloadLockedDocument & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreatePayloadLockedDocumentResponse = CreatePayloadLockedDocumentResponses[keyof CreatePayloadLockedDocumentResponses];

export type DeletePayloadLockedDocumentData = {
    body?: never;
    path: {
        /**
         * ID of the Payload Locked Document
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-locked-documents/{id}';
};

export type DeletePayloadLockedDocumentErrors = {
    /**
     * Payload Locked Document not found
     */
    404: unknown;
};

export type DeletePayloadLockedDocumentResponses = {
    /**
     * Payload Locked Document object
     */
    200: PayloadLockedDocument;
};

export type DeletePayloadLockedDocumentResponse = DeletePayloadLockedDocumentResponses[keyof DeletePayloadLockedDocumentResponses];

export type FindPayloadLockedDocumentByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Payload Locked Document
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-locked-documents/{id}';
};

export type FindPayloadLockedDocumentByIdErrors = {
    /**
     * Payload Locked Document not found
     */
    404: unknown;
};

export type FindPayloadLockedDocumentByIdResponses = {
    /**
     * Payload Locked Document object
     */
    200: PayloadLockedDocument;
};

export type FindPayloadLockedDocumentByIdResponse = FindPayloadLockedDocumentByIdResponses[keyof FindPayloadLockedDocumentByIdResponses];

export type UpdatePayloadLockedDocumentData = {
    /**
     * Payload Locked Document
     */
    body?: PayloadLockedDocumentPatchRequestBody;
    path: {
        /**
         * ID of the Payload Locked Document
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-locked-documents/{id}';
};

export type UpdatePayloadLockedDocumentErrors = {
    /**
     * Payload Locked Document not found
     */
    404: unknown;
};

export type UpdatePayloadLockedDocumentResponses = {
    /**
     * Payload Locked Document object
     */
    200: PayloadLockedDocument;
};

export type UpdatePayloadLockedDocumentResponse = UpdatePayloadLockedDocumentResponses[keyof UpdatePayloadLockedDocumentResponses];

export type ListPayloadPreferencesData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'key' | '-key' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (PayloadPreferenceQueryOperations | PayloadPreferenceQueryOperationsAnd | PayloadPreferenceQueryOperationsOr);
    };
    url: '/api/payload-preferences';
};

export type ListPayloadPreferencesResponses = {
    /**
     * List of Payload Preferences
     */
    200: {
        docs: Array<PayloadPreference>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListPayloadPreferencesResponse = ListPayloadPreferencesResponses[keyof ListPayloadPreferencesResponses];

export type CreatePayloadPreferenceData = {
    /**
     * Payload Preference
     */
    body?: PayloadPreferenceRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/payload-preferences';
};

export type CreatePayloadPreferenceResponses = {
    /**
     * Payload Preference object
     */
    201: {
        message: string;
        doc: PayloadPreference & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreatePayloadPreferenceResponse = CreatePayloadPreferenceResponses[keyof CreatePayloadPreferenceResponses];

export type DeletePayloadPreferenceData = {
    body?: never;
    path: {
        /**
         * ID of the Payload Preference
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-preferences/{id}';
};

export type DeletePayloadPreferenceErrors = {
    /**
     * Payload Preference not found
     */
    404: unknown;
};

export type DeletePayloadPreferenceResponses = {
    /**
     * Payload Preference object
     */
    200: PayloadPreference;
};

export type DeletePayloadPreferenceResponse = DeletePayloadPreferenceResponses[keyof DeletePayloadPreferenceResponses];

export type FindPayloadPreferenceByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Payload Preference
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-preferences/{id}';
};

export type FindPayloadPreferenceByIdErrors = {
    /**
     * Payload Preference not found
     */
    404: unknown;
};

export type FindPayloadPreferenceByIdResponses = {
    /**
     * Payload Preference object
     */
    200: PayloadPreference;
};

export type FindPayloadPreferenceByIdResponse = FindPayloadPreferenceByIdResponses[keyof FindPayloadPreferenceByIdResponses];

export type UpdatePayloadPreferenceData = {
    /**
     * Payload Preference
     */
    body?: PayloadPreferencePatchRequestBody;
    path: {
        /**
         * ID of the Payload Preference
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-preferences/{id}';
};

export type UpdatePayloadPreferenceErrors = {
    /**
     * Payload Preference not found
     */
    404: unknown;
};

export type UpdatePayloadPreferenceResponses = {
    /**
     * Payload Preference object
     */
    200: PayloadPreference;
};

export type UpdatePayloadPreferenceResponse = UpdatePayloadPreferenceResponses[keyof UpdatePayloadPreferenceResponses];

export type ListPayloadMigrationsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
        sort?: 'name' | '-name' | 'batch' | '-batch' | 'updatedAt' | '-updatedAt' | 'createdAt' | '-createdAt';
        where?: {
            [key: string]: unknown;
        } & (PayloadMigrationQueryOperations | PayloadMigrationQueryOperationsAnd | PayloadMigrationQueryOperationsOr);
    };
    url: '/api/payload-migrations';
};

export type ListPayloadMigrationsResponses = {
    /**
     * List of Payload Migrations
     */
    200: {
        docs: Array<PayloadMigration>;
        totalDocs: number;
        limit: number;
        totalPages: number;
        page: number;
        pagingCounter: number;
        hasPrevPage: boolean;
        hasNextPage: boolean;
        prevPage: number | null;
        nextPage: number | null;
    };
};

export type ListPayloadMigrationsResponse = ListPayloadMigrationsResponses[keyof ListPayloadMigrationsResponses];

export type CreatePayloadMigrationData = {
    /**
     * Payload Migration
     */
    body?: PayloadMigrationRequestBody;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
    };
    url: '/api/payload-migrations';
};

export type CreatePayloadMigrationResponses = {
    /**
     * Payload Migration object
     */
    201: {
        message: string;
        doc: PayloadMigration & {
            id: string;
            createdAt: string;
            updatedAt: string;
        };
    };
};

export type CreatePayloadMigrationResponse = CreatePayloadMigrationResponses[keyof CreatePayloadMigrationResponses];

export type DeletePayloadMigrationData = {
    body?: never;
    path: {
        /**
         * ID of the Payload Migration
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-migrations/{id}';
};

export type DeletePayloadMigrationErrors = {
    /**
     * Payload Migration not found
     */
    404: unknown;
};

export type DeletePayloadMigrationResponses = {
    /**
     * Payload Migration object
     */
    200: PayloadMigration;
};

export type DeletePayloadMigrationResponse = DeletePayloadMigrationResponses[keyof DeletePayloadMigrationResponses];

export type FindPayloadMigrationByIdData = {
    body?: never;
    path: {
        /**
         * ID of the Payload Migration
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-migrations/{id}';
};

export type FindPayloadMigrationByIdErrors = {
    /**
     * Payload Migration not found
     */
    404: unknown;
};

export type FindPayloadMigrationByIdResponses = {
    /**
     * Payload Migration object
     */
    200: PayloadMigration;
};

export type FindPayloadMigrationByIdResponse = FindPayloadMigrationByIdResponses[keyof FindPayloadMigrationByIdResponses];

export type UpdatePayloadMigrationData = {
    /**
     * Payload Migration
     */
    body?: PayloadMigrationPatchRequestBody;
    path: {
        /**
         * ID of the Payload Migration
         */
        id: string;
    };
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/payload-migrations/{id}';
};

export type UpdatePayloadMigrationErrors = {
    /**
     * Payload Migration not found
     */
    404: unknown;
};

export type UpdatePayloadMigrationResponses = {
    /**
     * Payload Migration object
     */
    200: PayloadMigration;
};

export type UpdatePayloadMigrationResponse = UpdatePayloadMigrationResponses[keyof UpdatePayloadMigrationResponses];

export type GetApiGlobalsHeaderData = {
    body?: never;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/globals/header';
};

export type GetApiGlobalsHeaderResponses = {
    /**
     * Header
     */
    200: HeaderRead;
};

export type GetApiGlobalsHeaderResponse = GetApiGlobalsHeaderResponses[keyof GetApiGlobalsHeaderResponses];

export type PostApiGlobalsHeaderData = {
    /**
     * Header
     */
    body?: HeaderRequestBody;
    path?: never;
    query?: never;
    url: '/api/globals/header';
};

export type PostApiGlobalsHeaderResponses = {
    /**
     * Header
     */
    200: HeaderRead;
};

export type PostApiGlobalsHeaderResponse = PostApiGlobalsHeaderResponses[keyof PostApiGlobalsHeaderResponses];

export type GetApiGlobalsFooterData = {
    body?: never;
    path?: never;
    query?: {
        depth?: number;
        locale?: string;
        'fallback-locale'?: string;
    };
    url: '/api/globals/footer';
};

export type GetApiGlobalsFooterResponses = {
    /**
     * Footer
     */
    200: FooterRead;
};

export type GetApiGlobalsFooterResponse = GetApiGlobalsFooterResponses[keyof GetApiGlobalsFooterResponses];

export type PostApiGlobalsFooterData = {
    /**
     * Footer
     */
    body?: FooterRequestBody;
    path?: never;
    query?: never;
    url: '/api/globals/footer';
};

export type PostApiGlobalsFooterResponses = {
    /**
     * Footer
     */
    200: FooterRead;
};

export type PostApiGlobalsFooterResponse = PostApiGlobalsFooterResponses[keyof PostApiGlobalsFooterResponses];
