import { z } from "zod";
/**
 * Collection Schema for Legacy Databases API
 *
 * Collections use the traditional Appwrite terminology:
 * - Container: `collections`
 * - Items: `documents`
 * - Fields: `attributes`
 *
 * This schema is designed for the legacy Databases API and maintains full backward compatibility.
 * For new projects or enhanced performance, consider using the Table schema which supports both
 * legacy and TablesDB terminology.
 *
 * @example
 * ```typescript
 * import { CollectionCreateSchema } from "appwrite-utils";
 *
 * const collection = CollectionCreateSchema.parse({
 *   name: "Users",
 *   attributes: [
 *     { key: "email", type: "string", required: true },
 *     { key: "name", type: "string", required: true }
 *   ],
 *   indexes: [
 *     { key: "email_idx", type: "unique", attributes: ["email"] }
 *   ]
 * });
 * ```
 *
 * Key differences from Tables:
 * - Collections: Always use 'attributes' (legacy Databases API)
 * - Tables: Support both 'attributes' and 'columns' (TablesDB API)
 * - Collections: Standard performance characteristics
 * - Tables: Enhanced performance with bulk operations
 */
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>>;
    $createdAt: z.ZodString;
    $updatedAt: z.ZodString;
    $permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        permission: z.ZodString;
        target: z.ZodString;
    }, z.core.$strip>>>>;
    attributes: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodObject<{
        key: z.ZodString;
        type: z.ZodString;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        error: z.ZodOptional<z.ZodString>;
        required: z.ZodOptional<z.ZodBoolean>;
        array: z.ZodOptional<z.ZodBoolean>;
        default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodAny>, z.ZodNull]>>;
        xdefault: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodAny>, z.ZodNull]>>;
        format: z.ZodOptional<z.ZodString>;
        size: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
        min: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBigInt]>>;
        max: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBigInt]>>;
        elements: z.ZodOptional<z.ZodArray<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
        relatedCollection: z.ZodOptional<z.ZodString>;
        relationType: z.ZodOptional<z.ZodString>;
        twoWay: z.ZodOptional<z.ZodBoolean>;
        twoWayKey: z.ZodOptional<z.ZodString>;
        onDelete: z.ZodOptional<z.ZodString>;
        side: z.ZodOptional<z.ZodString>;
        importMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
    }, z.core.$loose>, z.ZodDiscriminatedUnion<[z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"string">;
        size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"integer">;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"double">;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"float">;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"boolean">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"datetime">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"email">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"ip">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"url">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"enum">;
        elements: z.ZodDefault<z.ZodArray<z.ZodString>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"relationship">;
        relatedCollection: z.ZodOptional<z.ZodString>;
        relatedTable: z.ZodOptional<z.ZodString>;
        relationType: z.ZodEnum<{
            oneToMany: "oneToMany";
            manyToOne: "manyToOne";
            oneToOne: "oneToOne";
            manyToMany: "manyToMany";
        }>;
        twoWay: z.ZodBoolean;
        twoWayKey: z.ZodOptional<z.ZodString>;
        onDelete: z.ZodDefault<z.ZodEnum<{
            setNull: "setNull";
            cascade: "cascade";
            restrict: "restrict";
        }>>;
        side: z.ZodOptional<z.ZodEnum<{
            parent: "parent";
            child: "child";
        }>>;
        importMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"varchar">;
        size: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"text">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"mediumtext">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"longtext">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"point">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny>>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"line">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny>>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"polygon">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny>>>;
    }, z.core.$strip>], "type">>>>;
    indexes: z.ZodPipe<z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            key: "key";
            unique: "unique";
            fulltext: "fulltext";
        }>>>;
        status: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        attributes: z.ZodArray<z.ZodString>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>>>, z.ZodTransform<{
        key: string;
        type: "key" | "unique" | "fulltext";
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[], {
        key: string;
        type: "key" | "unique" | "fulltext";
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[]>>;
    importDefs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
            create: "create";
            update: "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;
        }, z.core.$strip>>>;
        createUsers: z.ZodOptional<z.ZodNullable<z.ZodDefault<z.ZodBoolean>>>;
        updateMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodString;
        }, z.core.$strip>>;
        attributeMappings: z.ZodArray<z.ZodObject<{
            oldKey: z.ZodOptional<z.ZodString>;
            oldKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
            targetKey: z.ZodString;
            valueToSet: z.ZodOptional<z.ZodAny>;
            fileData: z.ZodOptional<z.ZodObject<{
                name: z.ZodString;
                path: z.ZodString;
            }, z.core.$strip>>;
            converters: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
            validationActions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
                action: z.ZodString;
                params: z.ZodArray<z.ZodString>;
            }, z.core.$strip>>>>;
            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>]>>;
            }, z.core.$strip>>>>;
        }, z.core.$strip>>;
    }, z.core.$strip>>>>;
    databaseId: z.ZodOptional<z.ZodString>;
    databaseIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export declare const CollectionCreateSchema: z.ZodObject<{
    name: z.ZodString;
    attributes: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodObject<{
        key: z.ZodString;
        type: z.ZodString;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        error: z.ZodOptional<z.ZodString>;
        required: z.ZodOptional<z.ZodBoolean>;
        array: z.ZodOptional<z.ZodBoolean>;
        default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodAny>, z.ZodNull]>>;
        xdefault: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodAny>, z.ZodNull]>>;
        format: z.ZodOptional<z.ZodString>;
        size: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
        min: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBigInt]>>;
        max: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBigInt]>>;
        elements: z.ZodOptional<z.ZodArray<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
        relatedCollection: z.ZodOptional<z.ZodString>;
        relationType: z.ZodOptional<z.ZodString>;
        twoWay: z.ZodOptional<z.ZodBoolean>;
        twoWayKey: z.ZodOptional<z.ZodString>;
        onDelete: z.ZodOptional<z.ZodString>;
        side: z.ZodOptional<z.ZodString>;
        importMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
    }, z.core.$loose>, z.ZodDiscriminatedUnion<[z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"string">;
        size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"integer">;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"double">;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"float">;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"boolean">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"datetime">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"email">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"ip">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"url">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"enum">;
        elements: z.ZodDefault<z.ZodArray<z.ZodString>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"relationship">;
        relatedCollection: z.ZodOptional<z.ZodString>;
        relatedTable: z.ZodOptional<z.ZodString>;
        relationType: z.ZodEnum<{
            oneToMany: "oneToMany";
            manyToOne: "manyToOne";
            oneToOne: "oneToOne";
            manyToMany: "manyToMany";
        }>;
        twoWay: z.ZodBoolean;
        twoWayKey: z.ZodOptional<z.ZodString>;
        onDelete: z.ZodDefault<z.ZodEnum<{
            setNull: "setNull";
            cascade: "cascade";
            restrict: "restrict";
        }>>;
        side: z.ZodOptional<z.ZodEnum<{
            parent: "parent";
            child: "child";
        }>>;
        importMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"varchar">;
        size: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"text">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"mediumtext">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"longtext">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"point">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny>>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"line">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny>>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"polygon">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny>>>;
    }, z.core.$strip>], "type">>>>;
    $id: z.ZodOptional<z.ZodString>;
    enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    $permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        permission: z.ZodString;
        target: z.ZodString;
    }, z.core.$strip>>>>;
    databaseId: z.ZodOptional<z.ZodString>;
    documentSecurity: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    indexes: z.ZodPipe<z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            key: "key";
            unique: "unique";
            fulltext: "fulltext";
        }>>>;
        status: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        attributes: z.ZodArray<z.ZodString>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>>>, z.ZodTransform<{
        key: string;
        type: "key" | "unique" | "fulltext";
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[], {
        key: string;
        type: "key" | "unique" | "fulltext";
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[]>>;
    importDefs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
            create: "create";
            update: "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;
        }, z.core.$strip>>>;
        createUsers: z.ZodOptional<z.ZodNullable<z.ZodDefault<z.ZodBoolean>>>;
        updateMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodString;
        }, z.core.$strip>>;
        attributeMappings: z.ZodArray<z.ZodObject<{
            oldKey: z.ZodOptional<z.ZodString>;
            oldKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
            targetKey: z.ZodString;
            valueToSet: z.ZodOptional<z.ZodAny>;
            fileData: z.ZodOptional<z.ZodObject<{
                name: z.ZodString;
                path: z.ZodString;
            }, z.core.$strip>>;
            converters: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
            validationActions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
                action: z.ZodString;
                params: z.ZodArray<z.ZodString>;
            }, z.core.$strip>>>>;
            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>]>>;
            }, z.core.$strip>>>>;
        }, z.core.$strip>>;
    }, z.core.$strip>>>>;
    databaseIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export declare const CollectionsSchema: z.ZodArray<z.ZodObject<{
    name: z.ZodString;
    attributes: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodObject<{
        key: z.ZodString;
        type: z.ZodString;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        error: z.ZodOptional<z.ZodString>;
        required: z.ZodOptional<z.ZodBoolean>;
        array: z.ZodOptional<z.ZodBoolean>;
        default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodAny>, z.ZodNull]>>;
        xdefault: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodAny>, z.ZodNull]>>;
        format: z.ZodOptional<z.ZodString>;
        size: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
        min: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBigInt]>>;
        max: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString, z.ZodBigInt]>>;
        elements: z.ZodOptional<z.ZodArray<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
        relatedCollection: z.ZodOptional<z.ZodString>;
        relationType: z.ZodOptional<z.ZodString>;
        twoWay: z.ZodOptional<z.ZodBoolean>;
        twoWayKey: z.ZodOptional<z.ZodString>;
        onDelete: z.ZodOptional<z.ZodString>;
        side: z.ZodOptional<z.ZodString>;
        importMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
    }, z.core.$loose>, z.ZodDiscriminatedUnion<[z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"string">;
        size: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"integer">;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"double">;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"float">;
        min: z.ZodOptional<z.ZodNumber>;
        max: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"boolean">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"datetime">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"email">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"ip">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"url">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"enum">;
        elements: z.ZodDefault<z.ZodArray<z.ZodString>>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"relationship">;
        relatedCollection: z.ZodOptional<z.ZodString>;
        relatedTable: z.ZodOptional<z.ZodString>;
        relationType: z.ZodEnum<{
            oneToMany: "oneToMany";
            manyToOne: "manyToOne";
            oneToOne: "oneToOne";
            manyToMany: "manyToMany";
        }>;
        twoWay: z.ZodBoolean;
        twoWayKey: z.ZodOptional<z.ZodString>;
        onDelete: z.ZodDefault<z.ZodEnum<{
            setNull: "setNull";
            cascade: "cascade";
            restrict: "restrict";
        }>>;
        side: z.ZodOptional<z.ZodEnum<{
            parent: "parent";
            child: "child";
        }>>;
        importMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"varchar">;
        size: z.ZodOptional<z.ZodNumber>;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"text">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"mediumtext">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"longtext">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        encrypt: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"point">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny>>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"line">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny>>>;
    }, z.core.$strip>, z.ZodObject<{
        array: z.ZodOptional<z.ZodBoolean>;
        format: z.ZodOptional<z.ZodString>;
        key: z.ZodString;
        status: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<z.ZodArray<z.ZodString>>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
        required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
        $createdAt: z.ZodOptional<z.ZodString>;
        $updatedAt: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        type: z.ZodLiteral<"polygon">;
        xdefault: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodAny>>>;
    }, z.core.$strip>], "type">>>>;
    $id: z.ZodOptional<z.ZodString>;
    enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    $permissions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        permission: z.ZodString;
        target: z.ZodString;
    }, z.core.$strip>>>>;
    databaseId: z.ZodOptional<z.ZodString>;
    documentSecurity: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
    indexes: z.ZodPipe<z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        key: z.ZodString;
        type: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
            key: "key";
            unique: "unique";
            fulltext: "fulltext";
        }>>>;
        status: z.ZodOptional<z.ZodString>;
        error: z.ZodOptional<z.ZodString>;
        attributes: z.ZodArray<z.ZodString>;
        orders: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>>>, z.ZodTransform<{
        key: string;
        type: "key" | "unique" | "fulltext";
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[], {
        key: string;
        type: "key" | "unique" | "fulltext";
        attributes: string[];
        status?: string | undefined;
        error?: string | undefined;
        orders?: string[] | undefined;
    }[]>>;
    importDefs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        type: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
            create: "create";
            update: "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;
        }, z.core.$strip>>>;
        createUsers: z.ZodOptional<z.ZodNullable<z.ZodDefault<z.ZodBoolean>>>;
        updateMapping: z.ZodOptional<z.ZodObject<{
            originalIdField: z.ZodString;
            targetField: z.ZodString;
        }, z.core.$strip>>;
        attributeMappings: z.ZodArray<z.ZodObject<{
            oldKey: z.ZodOptional<z.ZodString>;
            oldKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
            targetKey: z.ZodString;
            valueToSet: z.ZodOptional<z.ZodAny>;
            fileData: z.ZodOptional<z.ZodObject<{
                name: z.ZodString;
                path: z.ZodString;
            }, z.core.$strip>>;
            converters: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
            validationActions: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
                action: z.ZodString;
                params: z.ZodArray<z.ZodString>;
            }, z.core.$strip>>>>;
            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>]>>;
            }, z.core.$strip>>>>;
        }, z.core.$strip>>;
    }, z.core.$strip>>>>;
    databaseIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>>;
export type Collection = z.infer<typeof CollectionSchema>;
export type Collections = z.infer<typeof CollectionsSchema>;
export type CollectionCreate = z.infer<typeof CollectionCreateSchema>;
export type CollectionInput = z.input<typeof CollectionSchema>;
export type CollectionCreateInput = z.input<typeof CollectionCreateSchema>;
