import { z } from "zod";
export declare const CollectionSchema: z.ZodObject<{
    name: z.ZodString;
    $id: z.ZodOptional<z.ZodString>;
    enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    documentSecurity: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    description: z.ZodOptional<z.ZodString>;
    $createdAt: z.ZodString;
    $updatedAt: z.ZodString;
    $permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        permission: z.ZodString;
        target: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        permission: string;
        target: string;
    }, {
        permission: string;
        target: string;
    }>, "many">>>;
    attributes: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"string">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypted: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
    }, "strip", z.ZodTypeAny, {
        type: "string";
        key: string;
        size: number;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    }, {
        key: string;
        type?: "string" | undefined;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        size?: number | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"integer">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "integer";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }, {
        key: string;
        type?: "integer" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"float">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "float";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }, {
        key: string;
        type?: "float" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"boolean">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "boolean";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    }, {
        key: string;
        type?: "boolean" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"datetime">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "datetime";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "datetime" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"email">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "email";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "email" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodLiteral<"ip">;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"url">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "url" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"enum">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        elements: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "enum";
        key: string;
        elements: string[];
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "enum" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        elements?: string[] | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"relationship">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        relatedCollection: z.ZodString;
        relationType: z.ZodEnum<["oneToMany", "manyToOne", "oneToOne", "manyToMany"]>;
        twoWay: z.ZodBoolean;
        twoWayKey: z.ZodString;
        onDelete: z.ZodDefault<z.ZodEnum<["setNull", "cascade", "restrict"]>>;
        side: z.ZodEnum<["parent", "child"]>;
        importMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            originalIdField: string;
            targetField?: string | undefined;
        }, {
            originalIdField: string;
            targetField?: string | undefined;
        }>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "relationship";
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        onDelete: "setNull" | "cascade" | "restrict";
        side: "parent" | "child";
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    }, {
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        side: "parent" | "child";
        type?: "relationship" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        onDelete?: "setNull" | "cascade" | "restrict" | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    }>]>, "many">>;
    indexes: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["key", "unique", "fulltext"]>>>;
        status: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        attributes: z.ZodArray<z.ZodString, "many">;
        orders: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        type: "key" | "unique" | "fulltext";
        key: string;
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }, {
        key: string;
        attributes: string[];
        type?: "key" | "unique" | "fulltext" | undefined;
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }>, "many">>>, {
        type: "key" | "unique" | "fulltext";
        key: string;
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[], {
        key: string;
        attributes: string[];
        type?: "key" | "unique" | "fulltext" | undefined;
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[] | undefined>;
    importDefs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodOptional<z.ZodDefault<z.ZodEnum<["create", "update"]>>>;
        filePath: z.ZodString;
        basePath: z.ZodOptional<z.ZodString>;
        primaryKeyField: z.ZodDefault<z.ZodString>;
        idMappings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            sourceField: z.ZodString;
            fieldToSet: z.ZodOptional<z.ZodString>;
            targetFieldToMatch: z.ZodOptional<z.ZodString>;
            targetField: z.ZodString;
            targetCollection: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }, {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }>, "many">>;
        createUsers: z.ZodOptional<z.ZodNullable<z.ZodDefault<z.ZodBoolean>>>;
        updateMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            targetField: string;
            originalIdField: string;
        }, {
            targetField: string;
            originalIdField: string;
        }>>;
        attributeMappings: z.ZodArray<z.ZodObject<{
            oldKey: z.ZodOptional<z.ZodString>;
            oldKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            targetKey: z.ZodString;
            valueToSet: z.ZodOptional<z.ZodAny>;
            fileData: z.ZodOptional<z.ZodObject<{
                name: z.ZodString;
                path: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                path: string;
                name: string;
            }, {
                path: string;
                name: string;
            }>>;
            converters: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
            validationActions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
                action: z.ZodString;
                params: z.ZodArray<z.ZodString, "many">;
            }, "strip", z.ZodTypeAny, {
                params: string[];
                action: string;
            }, {
                params: string[];
                action: string;
            }>, "many">>>;
            postImportActions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
                action: z.ZodString;
                params: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodAny>]>, "many">;
            }, "strip", z.ZodTypeAny, {
                params: (string | Record<string, any>)[];
                action: string;
            }, {
                params: (string | Record<string, any>)[];
                action: string;
            }>, "many">>>;
        }, "strip", z.ZodTypeAny, {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }, {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        filePath: string;
        primaryKeyField: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }, {
        filePath: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        primaryKeyField?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }>, "many">>>;
    databaseId: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    name: string;
    attributes: ({
        type: "string";
        key: string;
        size: number;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    } | {
        type: "integer";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        type: "float";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        type: "boolean";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    } | {
        type: "datetime";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "email";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "url";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "enum";
        key: string;
        elements: string[];
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "relationship";
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        onDelete: "setNull" | "cascade" | "restrict";
        side: "parent" | "child";
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    })[];
    $createdAt: string;
    $updatedAt: string;
    $permissions: {
        permission: string;
        target: string;
    }[];
    indexes: {
        type: "key" | "unique" | "fulltext";
        key: string;
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[];
    importDefs: {
        filePath: string;
        primaryKeyField: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }[];
    description?: string | undefined;
    $id?: string | undefined;
    enabled?: boolean | undefined;
    documentSecurity?: boolean | undefined;
    databaseId?: string | undefined;
}, {
    name: string;
    $createdAt: string;
    $updatedAt: string;
    description?: string | undefined;
    attributes?: ({
        key: string;
        type?: "string" | undefined;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        size?: number | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    } | {
        key: string;
        type?: "integer" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        key: string;
        type?: "float" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        key: string;
        type?: "boolean" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    } | {
        key: string;
        type?: "datetime" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        key: string;
        type?: "email" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        key: string;
        type?: "url" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        key: string;
        type?: "enum" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        elements?: string[] | undefined;
    } | {
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        side: "parent" | "child";
        type?: "relationship" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        onDelete?: "setNull" | "cascade" | "restrict" | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    })[] | undefined;
    $id?: string | undefined;
    enabled?: boolean | undefined;
    documentSecurity?: boolean | undefined;
    $permissions?: {
        permission: string;
        target: string;
    }[] | undefined;
    indexes?: {
        key: string;
        attributes: string[];
        type?: "key" | "unique" | "fulltext" | undefined;
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[] | undefined;
    importDefs?: {
        filePath: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        primaryKeyField?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }[] | undefined;
    databaseId?: string | undefined;
}>;
export declare const CollectionCreateSchema: z.ZodObject<Omit<{
    name: z.ZodString;
    $id: z.ZodOptional<z.ZodString>;
    enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    documentSecurity: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    description: z.ZodOptional<z.ZodString>;
    $createdAt: z.ZodString;
    $updatedAt: z.ZodString;
    $permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        permission: z.ZodString;
        target: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        permission: string;
        target: string;
    }, {
        permission: string;
        target: string;
    }>, "many">>>;
    attributes: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"string">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypted: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
    }, "strip", z.ZodTypeAny, {
        type: "string";
        key: string;
        size: number;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    }, {
        key: string;
        type?: "string" | undefined;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        size?: number | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"integer">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "integer";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }, {
        key: string;
        type?: "integer" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"float">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "float";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }, {
        key: string;
        type?: "float" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"boolean">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "boolean";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    }, {
        key: string;
        type?: "boolean" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"datetime">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "datetime";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "datetime" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"email">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "email";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "email" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodLiteral<"ip">;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"url">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "url" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"enum">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        elements: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "enum";
        key: string;
        elements: string[];
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "enum" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        elements?: string[] | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"relationship">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        relatedCollection: z.ZodString;
        relationType: z.ZodEnum<["oneToMany", "manyToOne", "oneToOne", "manyToMany"]>;
        twoWay: z.ZodBoolean;
        twoWayKey: z.ZodString;
        onDelete: z.ZodDefault<z.ZodEnum<["setNull", "cascade", "restrict"]>>;
        side: z.ZodEnum<["parent", "child"]>;
        importMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            originalIdField: string;
            targetField?: string | undefined;
        }, {
            originalIdField: string;
            targetField?: string | undefined;
        }>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "relationship";
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        onDelete: "setNull" | "cascade" | "restrict";
        side: "parent" | "child";
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    }, {
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        side: "parent" | "child";
        type?: "relationship" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        onDelete?: "setNull" | "cascade" | "restrict" | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    }>]>, "many">>;
    indexes: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["key", "unique", "fulltext"]>>>;
        status: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        attributes: z.ZodArray<z.ZodString, "many">;
        orders: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        type: "key" | "unique" | "fulltext";
        key: string;
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }, {
        key: string;
        attributes: string[];
        type?: "key" | "unique" | "fulltext" | undefined;
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }>, "many">>>, {
        type: "key" | "unique" | "fulltext";
        key: string;
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[], {
        key: string;
        attributes: string[];
        type?: "key" | "unique" | "fulltext" | undefined;
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[] | undefined>;
    importDefs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodOptional<z.ZodDefault<z.ZodEnum<["create", "update"]>>>;
        filePath: z.ZodString;
        basePath: z.ZodOptional<z.ZodString>;
        primaryKeyField: z.ZodDefault<z.ZodString>;
        idMappings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            sourceField: z.ZodString;
            fieldToSet: z.ZodOptional<z.ZodString>;
            targetFieldToMatch: z.ZodOptional<z.ZodString>;
            targetField: z.ZodString;
            targetCollection: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }, {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }>, "many">>;
        createUsers: z.ZodOptional<z.ZodNullable<z.ZodDefault<z.ZodBoolean>>>;
        updateMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            targetField: string;
            originalIdField: string;
        }, {
            targetField: string;
            originalIdField: string;
        }>>;
        attributeMappings: z.ZodArray<z.ZodObject<{
            oldKey: z.ZodOptional<z.ZodString>;
            oldKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            targetKey: z.ZodString;
            valueToSet: z.ZodOptional<z.ZodAny>;
            fileData: z.ZodOptional<z.ZodObject<{
                name: z.ZodString;
                path: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                path: string;
                name: string;
            }, {
                path: string;
                name: string;
            }>>;
            converters: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
            validationActions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
                action: z.ZodString;
                params: z.ZodArray<z.ZodString, "many">;
            }, "strip", z.ZodTypeAny, {
                params: string[];
                action: string;
            }, {
                params: string[];
                action: string;
            }>, "many">>>;
            postImportActions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
                action: z.ZodString;
                params: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodAny>]>, "many">;
            }, "strip", z.ZodTypeAny, {
                params: (string | Record<string, any>)[];
                action: string;
            }, {
                params: (string | Record<string, any>)[];
                action: string;
            }>, "many">>>;
        }, "strip", z.ZodTypeAny, {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }, {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        filePath: string;
        primaryKeyField: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }, {
        filePath: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        primaryKeyField?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }>, "many">>>;
    databaseId: z.ZodOptional<z.ZodString>;
}, "$createdAt" | "$updatedAt">, "strip", z.ZodTypeAny, {
    name: string;
    attributes: ({
        type: "string";
        key: string;
        size: number;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    } | {
        type: "integer";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        type: "float";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        type: "boolean";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    } | {
        type: "datetime";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "email";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "url";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "enum";
        key: string;
        elements: string[];
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "relationship";
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        onDelete: "setNull" | "cascade" | "restrict";
        side: "parent" | "child";
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    })[];
    $permissions: {
        permission: string;
        target: string;
    }[];
    indexes: {
        type: "key" | "unique" | "fulltext";
        key: string;
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[];
    importDefs: {
        filePath: string;
        primaryKeyField: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }[];
    description?: string | undefined;
    $id?: string | undefined;
    enabled?: boolean | undefined;
    documentSecurity?: boolean | undefined;
    databaseId?: string | undefined;
}, {
    name: string;
    description?: string | undefined;
    attributes?: ({
        key: string;
        type?: "string" | undefined;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        size?: number | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    } | {
        key: string;
        type?: "integer" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        key: string;
        type?: "float" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        key: string;
        type?: "boolean" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    } | {
        key: string;
        type?: "datetime" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        key: string;
        type?: "email" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        key: string;
        type?: "url" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        key: string;
        type?: "enum" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        elements?: string[] | undefined;
    } | {
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        side: "parent" | "child";
        type?: "relationship" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        onDelete?: "setNull" | "cascade" | "restrict" | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    })[] | undefined;
    $id?: string | undefined;
    enabled?: boolean | undefined;
    documentSecurity?: boolean | undefined;
    $permissions?: {
        permission: string;
        target: string;
    }[] | undefined;
    indexes?: {
        key: string;
        attributes: string[];
        type?: "key" | "unique" | "fulltext" | undefined;
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[] | undefined;
    importDefs?: {
        filePath: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        primaryKeyField?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }[] | undefined;
    databaseId?: string | undefined;
}>;
export declare const CollectionsSchema: z.ZodArray<z.ZodObject<Omit<{
    name: z.ZodString;
    $id: z.ZodOptional<z.ZodString>;
    enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    documentSecurity: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    description: z.ZodOptional<z.ZodString>;
    $createdAt: z.ZodString;
    $updatedAt: z.ZodString;
    $permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        permission: z.ZodString;
        target: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        permission: string;
        target: string;
    }, {
        permission: string;
        target: string;
    }>, "many">>>;
    attributes: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"string">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypted: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
    }, "strip", z.ZodTypeAny, {
        type: "string";
        key: string;
        size: number;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    }, {
        key: string;
        type?: "string" | undefined;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        size?: number | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"integer">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "integer";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }, {
        key: string;
        type?: "integer" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"float">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "float";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }, {
        key: string;
        type?: "float" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"boolean">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "boolean";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    }, {
        key: string;
        type?: "boolean" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"datetime">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "datetime";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "datetime" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"email">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "email";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "email" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodLiteral<"ip">;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"url">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "url";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "url" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"enum">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        elements: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "enum";
        key: string;
        elements: string[];
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    }, {
        key: string;
        type?: "enum" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        elements?: string[] | undefined;
    }>, z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodLiteral<"relationship">>;
        error: z.ZodOptional<z.ZodDefault<z.ZodString>>;
        required: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        array: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        relatedCollection: z.ZodString;
        relationType: z.ZodEnum<["oneToMany", "manyToOne", "oneToOne", "manyToMany"]>;
        twoWay: z.ZodBoolean;
        twoWayKey: z.ZodString;
        onDelete: z.ZodDefault<z.ZodEnum<["setNull", "cascade", "restrict"]>>;
        side: z.ZodEnum<["parent", "child"]>;
        importMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            originalIdField: string;
            targetField?: string | undefined;
        }, {
            originalIdField: string;
            targetField?: string | undefined;
        }>>;
        description: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>>;
    }, "strip", z.ZodTypeAny, {
        type: "relationship";
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        onDelete: "setNull" | "cascade" | "restrict";
        side: "parent" | "child";
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    }, {
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        side: "parent" | "child";
        type?: "relationship" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        onDelete?: "setNull" | "cascade" | "restrict" | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    }>]>, "many">>;
    indexes: z.ZodEffects<z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodOptional<z.ZodEnum<["key", "unique", "fulltext"]>>>;
        status: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        attributes: z.ZodArray<z.ZodString, "many">;
        orders: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        type: "key" | "unique" | "fulltext";
        key: string;
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }, {
        key: string;
        attributes: string[];
        type?: "key" | "unique" | "fulltext" | undefined;
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }>, "many">>>, {
        type: "key" | "unique" | "fulltext";
        key: string;
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[], {
        key: string;
        attributes: string[];
        type?: "key" | "unique" | "fulltext" | undefined;
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[] | undefined>;
    importDefs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodOptional<z.ZodDefault<z.ZodEnum<["create", "update"]>>>;
        filePath: z.ZodString;
        basePath: z.ZodOptional<z.ZodString>;
        primaryKeyField: z.ZodDefault<z.ZodString>;
        idMappings: z.ZodOptional<z.ZodArray<z.ZodObject<{
            sourceField: z.ZodString;
            fieldToSet: z.ZodOptional<z.ZodString>;
            targetFieldToMatch: z.ZodOptional<z.ZodString>;
            targetField: z.ZodString;
            targetCollection: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }, {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }>, "many">>;
        createUsers: z.ZodOptional<z.ZodNullable<z.ZodDefault<z.ZodBoolean>>>;
        updateMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            targetField: string;
            originalIdField: string;
        }, {
            targetField: string;
            originalIdField: string;
        }>>;
        attributeMappings: z.ZodArray<z.ZodObject<{
            oldKey: z.ZodOptional<z.ZodString>;
            oldKeys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
            targetKey: z.ZodString;
            valueToSet: z.ZodOptional<z.ZodAny>;
            fileData: z.ZodOptional<z.ZodObject<{
                name: z.ZodString;
                path: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                path: string;
                name: string;
            }, {
                path: string;
                name: string;
            }>>;
            converters: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
            validationActions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
                action: z.ZodString;
                params: z.ZodArray<z.ZodString, "many">;
            }, "strip", z.ZodTypeAny, {
                params: string[];
                action: string;
            }, {
                params: string[];
                action: string;
            }>, "many">>>;
            postImportActions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
                action: z.ZodString;
                params: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodAny>]>, "many">;
            }, "strip", z.ZodTypeAny, {
                params: (string | Record<string, any>)[];
                action: string;
            }, {
                params: (string | Record<string, any>)[];
                action: string;
            }>, "many">>>;
        }, "strip", z.ZodTypeAny, {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }, {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        filePath: string;
        primaryKeyField: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }, {
        filePath: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        primaryKeyField?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }>, "many">>>;
    databaseId: z.ZodOptional<z.ZodString>;
}, "$createdAt" | "$updatedAt">, "strip", z.ZodTypeAny, {
    name: string;
    attributes: ({
        type: "string";
        key: string;
        size: number;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    } | {
        type: "integer";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        type: "float";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        type: "boolean";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    } | {
        type: "datetime";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "email";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "url";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "enum";
        key: string;
        elements: string[];
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "relationship";
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        onDelete: "setNull" | "cascade" | "restrict";
        side: "parent" | "child";
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    })[];
    $permissions: {
        permission: string;
        target: string;
    }[];
    indexes: {
        type: "key" | "unique" | "fulltext";
        key: string;
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[];
    importDefs: {
        filePath: string;
        primaryKeyField: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }[];
    description?: string | undefined;
    $id?: string | undefined;
    enabled?: boolean | undefined;
    documentSecurity?: boolean | undefined;
    databaseId?: string | undefined;
}, {
    name: string;
    description?: string | undefined;
    attributes?: ({
        key: string;
        type?: "string" | undefined;
        format?: string | null | undefined;
        description?: string | Record<string, string> | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        size?: number | undefined;
        xdefault?: string | null | undefined;
        encrypted?: boolean | undefined;
    } | {
        key: string;
        type?: "integer" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        key: string;
        type?: "float" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: number | null | undefined;
        min?: number | undefined;
        max?: number | undefined;
    } | {
        key: string;
        type?: "boolean" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: boolean | null | undefined;
    } | {
        key: string;
        type?: "datetime" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        key: string;
        type?: "email" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        type: "ip";
        key: string;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        key: string;
        type?: "url" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
    } | {
        key: string;
        type?: "enum" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        xdefault?: string | null | undefined;
        elements?: string[] | undefined;
    } | {
        key: string;
        relatedCollection: string;
        relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
        twoWay: boolean;
        twoWayKey: string;
        side: "parent" | "child";
        type?: "relationship" | undefined;
        description?: string | Record<string, string> | null | undefined;
        required?: boolean | undefined;
        array?: boolean | undefined;
        error?: string | undefined;
        onDelete?: "setNull" | "cascade" | "restrict" | undefined;
        importMapping?: {
            originalIdField: string;
            targetField?: string | undefined;
        } | undefined;
    })[] | undefined;
    $id?: string | undefined;
    enabled?: boolean | undefined;
    documentSecurity?: boolean | undefined;
    $permissions?: {
        permission: string;
        target: string;
    }[] | undefined;
    indexes?: {
        key: string;
        attributes: string[];
        type?: "key" | "unique" | "fulltext" | undefined;
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[] | undefined;
    importDefs?: {
        filePath: string;
        attributeMappings: {
            targetKey: string;
            oldKey?: string | undefined;
            oldKeys?: string[] | undefined;
            valueToSet?: any;
            fileData?: {
                path: string;
                name: string;
            } | undefined;
            converters?: string[] | undefined;
            validationActions?: {
                params: string[];
                action: string;
            }[] | undefined;
            postImportActions?: {
                params: (string | Record<string, any>)[];
                action: string;
            }[] | undefined;
        }[];
        type?: "create" | "update" | undefined;
        basePath?: string | undefined;
        primaryKeyField?: string | undefined;
        idMappings?: {
            sourceField: string;
            targetField: string;
            targetCollection: string;
            fieldToSet?: string | undefined;
            targetFieldToMatch?: string | undefined;
        }[] | undefined;
        createUsers?: boolean | null | undefined;
        updateMapping?: {
            targetField: string;
            originalIdField: string;
        } | undefined;
    }[] | undefined;
    databaseId?: string | undefined;
}>, "many">;
export type Collection = z.infer<typeof CollectionSchema>;
export type Collections = z.infer<typeof CollectionsSchema>;
export type CollectionCreate = z.infer<typeof CollectionCreateSchema>;
