/**
 * @fileoverview Appwrite Configuration Schema with Dual API Support
 *
 * This module provides comprehensive configuration schemas that support both:
 * - Collections API (legacy Databases service): Uses `collections`, `documents`, `attributes`
 * - TablesDB API (new TablesDB service): Uses `tables`, `rows`, `columns`
 *
 * The schema automatically detects API mode and provides helper functions for
 * directory resolution and dual terminology support.
 *
 * @example
 * ```typescript
 * // Collections API Configuration
 * const collectionsConfig = {
 *   appwriteEndpoint: "https://cloud.appwrite.io/v1",
 *   appwriteProject: "project-id",
 *   appwriteKey: "api-key",
 *   collections: [
 *     { name: "Users", attributes: [...] }
 *   ]
 * };
 *
 * // TablesDB API Configuration
 * const tablesConfig = {
 *   appwriteEndpoint: "https://cloud.appwrite.io/v1",
 *   appwriteProject: "project-id",
 *   appwriteKey: "api-key",
 *   tables: [
 *     { name: "Users", attributes: [...] }
 *   ]
 * };
 * ```
 */
import { z } from "zod";
import { type Collections, type Collection } from "./collection.js";
import { type Tables, type Table } from "./table.js";
export declare const AppwriteConfigSchema: z.ZodPipe<z.ZodObject<{
    appwriteEndpoint: z.ZodDefault<z.ZodString>;
    appwriteProject: z.ZodString;
    appwriteKey: z.ZodOptional<z.ZodString>;
    appwriteClient: z.ZodDefault<z.ZodUnion<[z.ZodAny, z.ZodNull]>>;
    sessionCookie: z.ZodOptional<z.ZodString>;
    authMethod: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
        session: "session";
        auto: "auto";
        apikey: "apikey";
    }>>>;
    sessionMetadata: z.ZodOptional<z.ZodObject<{
        email: z.ZodOptional<z.ZodString>;
        expiresAt: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    logging: z.ZodDefault<z.ZodOptional<z.ZodObject<{
        enabled: z.ZodDefault<z.ZodBoolean>;
        level: z.ZodDefault<z.ZodEnum<{
            error: "error";
            warn: "warn";
            info: "info";
            debug: "debug";
        }>>;
        logDirectory: z.ZodOptional<z.ZodString>;
        console: z.ZodDefault<z.ZodBoolean>;
    }, z.core.$strip>>>;
    enableBackups: z.ZodDefault<z.ZodBoolean>;
    backupInterval: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    backupRetention: z.ZodDefault<z.ZodNumber>;
    enableBackupCleanup: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    enableMockData: z.ZodDefault<z.ZodBoolean>;
    documentBucketId: z.ZodDefault<z.ZodOptional<z.ZodString>>;
    usersCollectionName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
    databases: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        $id: z.ZodString;
        name: z.ZodString;
        bucket: z.ZodOptional<z.ZodObject<{
            $id: z.ZodString;
            name: z.ZodString;
            permissions: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
                permission: z.ZodString;
                target: z.ZodString;
            }, z.core.$strip>, z.ZodPipe<z.ZodString, z.ZodTransform<{
                permission: string;
                target: string;
            }, string>>]>>>>;
            fileSecurity: z.ZodOptional<z.ZodBoolean>;
            enabled: z.ZodOptional<z.ZodBoolean>;
            maximumFileSize: z.ZodOptional<z.ZodNumber>;
            allowedFileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
            compression: z.ZodOptional<z.ZodEnum<{
                none: "none";
                gzip: "gzip";
                zstd: "zstd";
            }>>;
            encryption: z.ZodOptional<z.ZodBoolean>;
            antivirus: z.ZodOptional<z.ZodBoolean>;
        }, z.core.$strip>>;
    }, z.core.$strip>>>>;
    buckets: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
        $id: z.ZodString;
        name: z.ZodString;
        permissions: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
            permission: z.ZodString;
            target: z.ZodString;
        }, z.core.$strip>, z.ZodPipe<z.ZodString, z.ZodTransform<{
            permission: string;
            target: string;
        }, string>>]>>>>;
        fileSecurity: z.ZodOptional<z.ZodBoolean>;
        enabled: z.ZodOptional<z.ZodBoolean>;
        maximumFileSize: z.ZodOptional<z.ZodNumber>;
        allowedFileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
        compression: z.ZodOptional<z.ZodEnum<{
            none: "none";
            gzip: "gzip";
            zstd: "zstd";
        }>>;
        encryption: z.ZodOptional<z.ZodBoolean>;
        antivirus: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>>>;
    collections: z.ZodOptional<z.ZodDefault<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>>>>;
    tables: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodObject<{
        name: z.ZodString;
        $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.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>>>>;
        rowSecurity: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
        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>>;
        tableId: z.ZodOptional<z.ZodString>;
        attributes: z.ZodOptional<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">>>>;
        columns: z.ZodOptional<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">>>>;
    }, z.core.$strip>, z.ZodTransform<{
        attributes: ({
            key: string;
            required: boolean;
            type: "integer";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "relationship";
            relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
            twoWay: boolean;
            onDelete: "setNull" | "cascade" | "restrict";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            relatedCollection?: string | undefined;
            relatedTable?: string | undefined;
            twoWayKey?: string | undefined;
            side?: "parent" | "child" | undefined;
            importMapping?: {
                originalIdField: string;
                targetField?: string | undefined;
            } | undefined;
        } | {
            key: string;
            required: boolean;
            type: "string";
            size: number;
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "double";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "float";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "boolean";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: boolean | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "datetime";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "email";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "ip";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "url";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "enum";
            elements: string[];
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "varchar";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            size?: number | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "text";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "mediumtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "longtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "point";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "line";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "polygon";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        })[];
        columns: undefined;
        indexes: {
            key: string;
            type: "key" | "unique" | "fulltext";
            attributes: string[];
            status?: string | undefined;
            error?: string | undefined;
            orders?: string[] | undefined;
        }[];
        name: string;
        $permissions: {
            permission: string;
            target: string;
        }[];
        importDefs: {
            filePath: string;
            primaryKeyField: string;
            attributeMappings: {
                targetKey: string;
                oldKey?: string | undefined;
                oldKeys?: string[] | undefined;
                valueToSet?: any;
                fileData?: {
                    name: string;
                    path: string;
                } | undefined;
                converters?: string[] | undefined;
                validationActions?: {
                    action: string;
                    params: string[];
                }[] | undefined;
                postImportActions?: {
                    action: string;
                    params: (string | Record<string, any>)[];
                }[] | 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?: {
                originalIdField: string;
                targetField: string;
            } | undefined;
        }[];
        $id?: string | undefined;
        enabled?: boolean | undefined;
        databaseId?: string | undefined;
        documentSecurity?: boolean | undefined;
        rowSecurity?: boolean | undefined;
        databaseIds?: string[] | undefined;
        tableId?: string | undefined;
    }, {
        name: string;
        $permissions: {
            permission: string;
            target: string;
        }[];
        indexes: {
            key: string;
            type: "key" | "unique" | "fulltext";
            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?: {
                    name: string;
                    path: string;
                } | undefined;
                converters?: string[] | undefined;
                validationActions?: {
                    action: string;
                    params: string[];
                }[] | undefined;
                postImportActions?: {
                    action: string;
                    params: (string | Record<string, any>)[];
                }[] | 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?: {
                originalIdField: string;
                targetField: string;
            } | undefined;
        }[];
        $id?: string | undefined;
        enabled?: boolean | undefined;
        databaseId?: string | undefined;
        documentSecurity?: boolean | undefined;
        rowSecurity?: boolean | undefined;
        databaseIds?: string[] | undefined;
        tableId?: string | undefined;
        attributes?: ({
            key: string;
            required: boolean;
            type: "integer";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "relationship";
            relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
            twoWay: boolean;
            onDelete: "setNull" | "cascade" | "restrict";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            relatedCollection?: string | undefined;
            relatedTable?: string | undefined;
            twoWayKey?: string | undefined;
            side?: "parent" | "child" | undefined;
            importMapping?: {
                originalIdField: string;
                targetField?: string | undefined;
            } | undefined;
        } | {
            key: string;
            required: boolean;
            type: "string";
            size: number;
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "double";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "float";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "boolean";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: boolean | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "datetime";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "email";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "ip";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "url";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "enum";
            elements: string[];
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "varchar";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            size?: number | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "text";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "mediumtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "longtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "point";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "line";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "polygon";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        })[] | undefined;
        columns?: ({
            key: string;
            required: boolean;
            type: "integer";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "relationship";
            relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
            twoWay: boolean;
            onDelete: "setNull" | "cascade" | "restrict";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            relatedCollection?: string | undefined;
            relatedTable?: string | undefined;
            twoWayKey?: string | undefined;
            side?: "parent" | "child" | undefined;
            importMapping?: {
                originalIdField: string;
                targetField?: string | undefined;
            } | undefined;
        } | {
            key: string;
            required: boolean;
            type: "string";
            size: number;
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "double";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "float";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "boolean";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: boolean | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "datetime";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "email";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "ip";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "url";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "enum";
            elements: string[];
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "varchar";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            size?: number | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "text";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "mediumtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "longtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "point";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "line";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "polygon";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        })[] | undefined;
    }>>>>>;
    functions: z.ZodOptional<z.ZodArray<z.ZodObject<{
        dirPath: z.ZodOptional<z.ZodString>;
        $id: z.ZodString;
        name: z.ZodString;
        runtime: any;
        execute: z.ZodArray<z.ZodString>;
        events: z.ZodOptional<z.ZodArray<z.ZodString>>;
        schedule: z.ZodOptional<z.ZodString>;
        timeout: z.ZodOptional<z.ZodNumber>;
        enabled: z.ZodOptional<z.ZodBoolean>;
        logging: z.ZodOptional<z.ZodBoolean>;
        ignore: z.ZodOptional<z.ZodArray<z.ZodString>>;
        keep: z.ZodOptional<z.ZodArray<z.ZodString>>;
        entrypoint: z.ZodOptional<z.ZodString>;
        predeployCommands: z.ZodOptional<z.ZodArray<z.ZodString>>;
        deployDir: z.ZodOptional<z.ZodString>;
        commands: z.ZodOptional<z.ZodString>;
        prebuilt: z.ZodOptional<z.ZodBoolean>;
        scopes: z.ZodOptional<z.ZodArray<z.ZodString & z.ZodType<"users.read" | "users.write" | "sessions.read" | "sessions.write" | "teams.read" | "teams.write" | "databases.read" | "databases.write" | "collections.read" | "collections.write" | "tables.read" | "tables.write" | "attributes.read" | "attributes.write" | "indexes.read" | "indexes.write" | "documents.read" | "documents.write" | "rows.read" | "rows.write" | "files.read" | "files.write" | "buckets.read" | "buckets.write" | "functions.read" | "functions.write" | "execution.read" | "execution.write" | "locale.read" | "avatars.read" | "health.read" | "rules.read" | "rules.write" | "migrations.read" | "migrations.write" | "sites.read" | "sites.write" | "log.read" | "log.write" | "tokens.read" | "tokens.write" | "vcs.read" | "vcs.write" | "assistant.read" | "messages.read" | "messages.write" | "targets.read" | "targets.write" | "providers.read" | "providers.write" | "topics.read" | "topics.write" | "subscribers.read" | "subscribers.write", string, z.core.$ZodTypeInternals<"users.read" | "users.write" | "sessions.read" | "sessions.write" | "teams.read" | "teams.write" | "databases.read" | "databases.write" | "collections.read" | "collections.write" | "tables.read" | "tables.write" | "attributes.read" | "attributes.write" | "indexes.read" | "indexes.write" | "documents.read" | "documents.write" | "rows.read" | "rows.write" | "files.read" | "files.write" | "buckets.read" | "buckets.write" | "functions.read" | "functions.write" | "execution.read" | "execution.write" | "locale.read" | "avatars.read" | "health.read" | "rules.read" | "rules.write" | "migrations.read" | "migrations.write" | "sites.read" | "sites.write" | "log.read" | "log.write" | "tokens.read" | "tokens.write" | "vcs.read" | "vcs.write" | "assistant.read" | "messages.read" | "messages.write" | "targets.read" | "targets.write" | "providers.read" | "providers.write" | "topics.read" | "topics.write" | "subscribers.read" | "subscribers.write", string>>>>;
        installationId: z.ZodOptional<z.ZodString>;
        providerRepositoryId: z.ZodOptional<z.ZodString>;
        providerBranch: z.ZodOptional<z.ZodString>;
        providerSilentMode: z.ZodOptional<z.ZodBoolean>;
        providerRootDirectory: z.ZodOptional<z.ZodString>;
        templateRepository: z.ZodOptional<z.ZodString>;
        templateOwner: z.ZodOptional<z.ZodString>;
        templateRootDirectory: z.ZodOptional<z.ZodString>;
        templateVersion: z.ZodOptional<z.ZodString>;
        buildSpecification: z.ZodOptional<z.ZodString & z.ZodType<"s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb", string, z.core.$ZodTypeInternals<"s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb", string>>>;
        runtimeSpecification: z.ZodOptional<z.ZodString & z.ZodType<"s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb", string, z.core.$ZodTypeInternals<"s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb", string>>>;
        domains: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>>;
    sites: z.ZodOptional<z.ZodArray<z.ZodObject<{
        dirPath: z.ZodOptional<z.ZodString>;
        $id: z.ZodString;
        name: z.ZodString;
        framework: z.ZodEnum<{
            analog: "analog";
            angular: "angular";
            nextjs: "nextjs";
            react: "react";
            nuxt: "nuxt";
            vue: "vue";
            sveltekit: "sveltekit";
            astro: "astro";
            "tanstack-start": "tanstack-start";
            remix: "remix";
            lynx: "lynx";
            flutter: "flutter";
            "react-native": "react-native";
            vite: "vite";
            other: "other";
        }>;
        buildRuntime: z.ZodEnum<{
            "node-14.5": "node-14.5";
            "node-16.0": "node-16.0";
            "node-18.0": "node-18.0";
            "node-19.0": "node-19.0";
            "node-20.0": "node-20.0";
            "node-21.0": "node-21.0";
            "node-22": "node-22";
            "bun-1.0": "bun-1.0";
            "bun-1.1": "bun-1.1";
            "bun-1.3": "bun-1.3";
            "deno-1.40": "deno-1.40";
            "deno-1.46": "deno-1.46";
            "deno-2.0": "deno-2.0";
            "go-1.23": "go-1.23";
            "python-3.8": "python-3.8";
            "python-3.9": "python-3.9";
            "python-3.10": "python-3.10";
            "python-3.11": "python-3.11";
            "python-3.12": "python-3.12";
            "python-ml-3.11": "python-ml-3.11";
            "dart-2.15": "dart-2.15";
            "dart-2.16": "dart-2.16";
            "dart-2.17": "dart-2.17";
            "dart-2.18": "dart-2.18";
            "dart-3.0": "dart-3.0";
            "dart-3.1": "dart-3.1";
            "dart-3.3": "dart-3.3";
            "dart-3.5": "dart-3.5";
            "php-8.0": "php-8.0";
            "php-8.1": "php-8.1";
            "php-8.2": "php-8.2";
            "php-8.3": "php-8.3";
            "ruby-3.0": "ruby-3.0";
            "ruby-3.1": "ruby-3.1";
            "ruby-3.2": "ruby-3.2";
            "ruby-3.3": "ruby-3.3";
            "dotnet-6.0": "dotnet-6.0";
            "dotnet-7.0": "dotnet-7.0";
            "dotnet-8.0": "dotnet-8.0";
            "java-8.0": "java-8.0";
            "java-11.0": "java-11.0";
            "java-17.0": "java-17.0";
            "java-18.0": "java-18.0";
            "java-21.0": "java-21.0";
            "java-22": "java-22";
            "swift-5.5": "swift-5.5";
            "swift-5.8": "swift-5.8";
            "swift-5.9": "swift-5.9";
            "swift-5.10": "swift-5.10";
            "kotlin-1.6": "kotlin-1.6";
            "kotlin-1.8": "kotlin-1.8";
            "kotlin-1.9": "kotlin-1.9";
            "kotlin-2.0": "kotlin-2.0";
            "cpp-17": "cpp-17";
            "cpp-20": "cpp-20";
            "node-23": "node-23";
            "node-24": "node-24";
            "node-25": "node-25";
            "php-8.4": "php-8.4";
            "ruby-3.4": "ruby-3.4";
            "ruby-4.0": "ruby-4.0";
            "python-3.13": "python-3.13";
            "python-3.14": "python-3.14";
            "python-ml-3.12": "python-ml-3.12";
            "python-ml-3.13": "python-ml-3.13";
            "deno-2.5": "deno-2.5";
            "deno-2.6": "deno-2.6";
            "dart-2.19": "dart-2.19";
            "dart-3.8": "dart-3.8";
            "dart-3.9": "dart-3.9";
            "dart-3.10": "dart-3.10";
            "dotnet-10": "dotnet-10";
            "java-25": "java-25";
            "swift-6.2": "swift-6.2";
            "kotlin-2.3": "kotlin-2.3";
            "bun-1.2": "bun-1.2";
            "go-1.24": "go-1.24";
            "go-1.25": "go-1.25";
            "go-1.26": "go-1.26";
            "static-1": "static-1";
            "flutter-3.24": "flutter-3.24";
            "flutter-3.27": "flutter-3.27";
            "flutter-3.29": "flutter-3.29";
            "flutter-3.32": "flutter-3.32";
            "flutter-3.35": "flutter-3.35";
            "flutter-3.38": "flutter-3.38";
        }>;
        enabled: z.ZodOptional<z.ZodBoolean>;
        logging: z.ZodOptional<z.ZodBoolean>;
        timeout: z.ZodOptional<z.ZodNumber>;
        installCommand: z.ZodOptional<z.ZodString>;
        buildCommand: z.ZodOptional<z.ZodString>;
        outputDirectory: z.ZodOptional<z.ZodString>;
        adapter: z.ZodOptional<z.ZodEnum<{
            static: "static";
            ssr: "ssr";
        }>>;
        fallbackFile: z.ZodOptional<z.ZodString>;
        installationId: z.ZodOptional<z.ZodString>;
        providerRepositoryId: z.ZodOptional<z.ZodString>;
        providerBranch: z.ZodOptional<z.ZodString>;
        providerSilentMode: z.ZodOptional<z.ZodBoolean>;
        providerRootDirectory: z.ZodOptional<z.ZodString>;
        buildSpecification: z.ZodOptional<z.ZodString & z.ZodType<"s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb", string, z.core.$ZodTypeInternals<"s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb", string>>>;
        runtimeSpecification: z.ZodOptional<z.ZodString & z.ZodType<"s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb", string, z.core.$ZodTypeInternals<"s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb", string>>>;
        predeployCommands: z.ZodOptional<z.ZodArray<z.ZodString>>;
        deployDir: z.ZodOptional<z.ZodString>;
        ignore: z.ZodOptional<z.ZodArray<z.ZodString>>;
        prebuilt: z.ZodOptional<z.ZodBoolean>;
        domains: z.ZodOptional<z.ZodArray<z.ZodString>>;
    }, z.core.$strip>>>;
    apiMode: z.ZodDefault<z.ZodEnum<{
        auto: "auto";
        legacy: "legacy";
        tablesdb: "tablesdb";
    }>>;
    schemaConfig: z.ZodOptional<z.ZodObject<{
        outputDirectory: z.ZodDefault<z.ZodString>;
        yamlSchemaDirectory: z.ZodDefault<z.ZodString>;
        importDirectory: z.ZodDefault<z.ZodString>;
        collectionsDirectory: z.ZodDefault<z.ZodString>;
        tablesDirectory: z.ZodDefault<z.ZodString>;
    }, z.core.$strip>>;
}, z.core.$strip>, z.ZodTransform<{
    appwriteEndpoint: string;
    appwriteProject: string;
    appwriteClient: any;
    authMethod: "session" | "auto" | "apikey";
    logging: {
        enabled: boolean;
        level: "error" | "warn" | "info" | "debug";
        console: boolean;
        logDirectory?: string | undefined;
    };
    enableBackups: boolean;
    backupInterval: number;
    backupRetention: number;
    enableBackupCleanup: boolean;
    enableMockData: boolean;
    documentBucketId: string;
    usersCollectionName: string;
    databases: {
        $id: string;
        name: string;
        bucket?: {
            $id: string;
            name: string;
            permissions?: ({
                permission: string;
                target: string;
            } | {
                permission: string;
                target: string;
            })[] | undefined;
            fileSecurity?: boolean | undefined;
            enabled?: boolean | undefined;
            maximumFileSize?: number | undefined;
            allowedFileExtensions?: string[] | undefined;
            compression?: "none" | "gzip" | "zstd" | undefined;
            encryption?: boolean | undefined;
            antivirus?: boolean | undefined;
        } | undefined;
    }[];
    buckets: {
        $id: string;
        name: string;
        permissions?: ({
            permission: string;
            target: string;
        } | {
            permission: string;
            target: string;
        })[] | undefined;
        fileSecurity?: boolean | undefined;
        enabled?: boolean | undefined;
        maximumFileSize?: number | undefined;
        allowedFileExtensions?: string[] | undefined;
        compression?: "none" | "gzip" | "zstd" | undefined;
        encryption?: boolean | undefined;
        antivirus?: boolean | undefined;
    }[];
    apiMode: "auto" | "legacy" | "tablesdb";
    appwriteKey?: string | undefined;
    sessionCookie?: string | undefined;
    sessionMetadata?: {
        email?: string | undefined;
        expiresAt?: string | undefined;
    } | undefined;
    collections?: {
        name: string;
        attributes: ({
            key: string;
            required: boolean;
            type: "integer";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "relationship";
            relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
            twoWay: boolean;
            onDelete: "setNull" | "cascade" | "restrict";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            relatedCollection?: string | undefined;
            relatedTable?: string | undefined;
            twoWayKey?: string | undefined;
            side?: "parent" | "child" | undefined;
            importMapping?: {
                originalIdField: string;
                targetField?: string | undefined;
            } | undefined;
        } | {
            key: string;
            required: boolean;
            type: "string";
            size: number;
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "double";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "float";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "boolean";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: boolean | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "datetime";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "email";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "ip";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "url";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "enum";
            elements: string[];
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "varchar";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            size?: number | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "text";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "mediumtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "longtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "point";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "line";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "polygon";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        })[];
        $permissions: {
            permission: string;
            target: string;
        }[];
        indexes: {
            key: string;
            type: "key" | "unique" | "fulltext";
            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?: {
                    name: string;
                    path: string;
                } | undefined;
                converters?: string[] | undefined;
                validationActions?: {
                    action: string;
                    params: string[];
                }[] | undefined;
                postImportActions?: {
                    action: string;
                    params: (string | Record<string, any>)[];
                }[] | 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?: {
                originalIdField: string;
                targetField: string;
            } | undefined;
        }[];
        $id?: string | undefined;
        enabled?: boolean | undefined;
        databaseId?: string | undefined;
        documentSecurity?: boolean | undefined;
        databaseIds?: string[] | undefined;
    }[] | undefined;
    tables?: {
        attributes: ({
            key: string;
            required: boolean;
            type: "integer";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "relationship";
            relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
            twoWay: boolean;
            onDelete: "setNull" | "cascade" | "restrict";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            relatedCollection?: string | undefined;
            relatedTable?: string | undefined;
            twoWayKey?: string | undefined;
            side?: "parent" | "child" | undefined;
            importMapping?: {
                originalIdField: string;
                targetField?: string | undefined;
            } | undefined;
        } | {
            key: string;
            required: boolean;
            type: "string";
            size: number;
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "double";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "float";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "boolean";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: boolean | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "datetime";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "email";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "ip";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "url";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "enum";
            elements: string[];
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "varchar";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            size?: number | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "text";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "mediumtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "longtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "point";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "line";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "polygon";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        })[];
        columns: undefined;
        indexes: {
            key: string;
            type: "key" | "unique" | "fulltext";
            attributes: string[];
            status?: string | undefined;
            error?: string | undefined;
            orders?: string[] | undefined;
        }[];
        name: string;
        $permissions: {
            permission: string;
            target: string;
        }[];
        importDefs: {
            filePath: string;
            primaryKeyField: string;
            attributeMappings: {
                targetKey: string;
                oldKey?: string | undefined;
                oldKeys?: string[] | undefined;
                valueToSet?: any;
                fileData?: {
                    name: string;
                    path: string;
                } | undefined;
                converters?: string[] | undefined;
                validationActions?: {
                    action: string;
                    params: string[];
                }[] | undefined;
                postImportActions?: {
                    action: string;
                    params: (string | Record<string, any>)[];
                }[] | 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?: {
                originalIdField: string;
                targetField: string;
            } | undefined;
        }[];
        $id?: string | undefined;
        enabled?: boolean | undefined;
        databaseId?: string | undefined;
        documentSecurity?: boolean | undefined;
        rowSecurity?: boolean | undefined;
        databaseIds?: string[] | undefined;
        tableId?: string | undefined;
    }[] | undefined;
    functions?: {
        $id: string;
        name: string;
        runtime: any;
        execute: string[];
        dirPath?: string | undefined;
        events?: string[] | undefined;
        schedule?: string | undefined;
        timeout?: number | undefined;
        enabled?: boolean | undefined;
        logging?: boolean | undefined;
        ignore?: string[] | undefined;
        keep?: string[] | undefined;
        entrypoint?: string | undefined;
        predeployCommands?: string[] | undefined;
        deployDir?: string | undefined;
        commands?: string | undefined;
        prebuilt?: boolean | undefined;
        scopes?: ("users.read" | "users.write" | "sessions.read" | "sessions.write" | "teams.read" | "teams.write" | "databases.read" | "databases.write" | "collections.read" | "collections.write" | "tables.read" | "tables.write" | "attributes.read" | "attributes.write" | "indexes.read" | "indexes.write" | "documents.read" | "documents.write" | "rows.read" | "rows.write" | "files.read" | "files.write" | "buckets.read" | "buckets.write" | "functions.read" | "functions.write" | "execution.read" | "execution.write" | "locale.read" | "avatars.read" | "health.read" | "rules.read" | "rules.write" | "migrations.read" | "migrations.write" | "sites.read" | "sites.write" | "log.read" | "log.write" | "tokens.read" | "tokens.write" | "vcs.read" | "vcs.write" | "assistant.read" | "messages.read" | "messages.write" | "targets.read" | "targets.write" | "providers.read" | "providers.write" | "topics.read" | "topics.write" | "subscribers.read" | "subscribers.write")[] | undefined;
        installationId?: string | undefined;
        providerRepositoryId?: string | undefined;
        providerBranch?: string | undefined;
        providerSilentMode?: boolean | undefined;
        providerRootDirectory?: string | undefined;
        templateRepository?: string | undefined;
        templateOwner?: string | undefined;
        templateRootDirectory?: string | undefined;
        templateVersion?: string | undefined;
        buildSpecification?: "s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb" | undefined;
        runtimeSpecification?: "s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb" | undefined;
        domains?: string[] | undefined;
    }[] | undefined;
    sites?: {
        $id: string;
        name: string;
        framework: "analog" | "angular" | "nextjs" | "react" | "nuxt" | "vue" | "sveltekit" | "astro" | "tanstack-start" | "remix" | "lynx" | "flutter" | "react-native" | "vite" | "other";
        buildRuntime: "node-14.5" | "node-16.0" | "node-18.0" | "node-19.0" | "node-20.0" | "node-21.0" | "node-22" | "bun-1.0" | "bun-1.1" | "bun-1.3" | "deno-1.40" | "deno-1.46" | "deno-2.0" | "go-1.23" | "python-3.8" | "python-3.9" | "python-3.10" | "python-3.11" | "python-3.12" | "python-ml-3.11" | "dart-2.15" | "dart-2.16" | "dart-2.17" | "dart-2.18" | "dart-3.0" | "dart-3.1" | "dart-3.3" | "dart-3.5" | "php-8.0" | "php-8.1" | "php-8.2" | "php-8.3" | "ruby-3.0" | "ruby-3.1" | "ruby-3.2" | "ruby-3.3" | "dotnet-6.0" | "dotnet-7.0" | "dotnet-8.0" | "java-8.0" | "java-11.0" | "java-17.0" | "java-18.0" | "java-21.0" | "java-22" | "swift-5.5" | "swift-5.8" | "swift-5.9" | "swift-5.10" | "kotlin-1.6" | "kotlin-1.8" | "kotlin-1.9" | "kotlin-2.0" | "cpp-17" | "cpp-20" | "node-23" | "node-24" | "node-25" | "php-8.4" | "ruby-3.4" | "ruby-4.0" | "python-3.13" | "python-3.14" | "python-ml-3.12" | "python-ml-3.13" | "deno-2.5" | "deno-2.6" | "dart-2.19" | "dart-3.8" | "dart-3.9" | "dart-3.10" | "dotnet-10" | "java-25" | "swift-6.2" | "kotlin-2.3" | "bun-1.2" | "go-1.24" | "go-1.25" | "go-1.26" | "static-1" | "flutter-3.24" | "flutter-3.27" | "flutter-3.29" | "flutter-3.32" | "flutter-3.35" | "flutter-3.38";
        dirPath?: string | undefined;
        enabled?: boolean | undefined;
        logging?: boolean | undefined;
        timeout?: number | undefined;
        installCommand?: string | undefined;
        buildCommand?: string | undefined;
        outputDirectory?: string | undefined;
        adapter?: "static" | "ssr" | undefined;
        fallbackFile?: string | undefined;
        installationId?: string | undefined;
        providerRepositoryId?: string | undefined;
        providerBranch?: string | undefined;
        providerSilentMode?: boolean | undefined;
        providerRootDirectory?: string | undefined;
        buildSpecification?: "s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb" | undefined;
        runtimeSpecification?: "s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb" | undefined;
        predeployCommands?: string[] | undefined;
        deployDir?: string | undefined;
        ignore?: string[] | undefined;
        prebuilt?: boolean | undefined;
        domains?: string[] | undefined;
    }[] | undefined;
    schemaConfig?: {
        outputDirectory: string;
        yamlSchemaDirectory: string;
        importDirectory: string;
        collectionsDirectory: string;
        tablesDirectory: string;
    } | undefined;
}, {
    appwriteEndpoint: string;
    appwriteProject: string;
    appwriteClient: any;
    authMethod: "session" | "auto" | "apikey";
    logging: {
        enabled: boolean;
        level: "error" | "warn" | "info" | "debug";
        console: boolean;
        logDirectory?: string | undefined;
    };
    enableBackups: boolean;
    backupInterval: number;
    backupRetention: number;
    enableBackupCleanup: boolean;
    enableMockData: boolean;
    documentBucketId: string;
    usersCollectionName: string;
    databases: {
        $id: string;
        name: string;
        bucket?: {
            $id: string;
            name: string;
            permissions?: ({
                permission: string;
                target: string;
            } | {
                permission: string;
                target: string;
            })[] | undefined;
            fileSecurity?: boolean | undefined;
            enabled?: boolean | undefined;
            maximumFileSize?: number | undefined;
            allowedFileExtensions?: string[] | undefined;
            compression?: "none" | "gzip" | "zstd" | undefined;
            encryption?: boolean | undefined;
            antivirus?: boolean | undefined;
        } | undefined;
    }[];
    buckets: {
        $id: string;
        name: string;
        permissions?: ({
            permission: string;
            target: string;
        } | {
            permission: string;
            target: string;
        })[] | undefined;
        fileSecurity?: boolean | undefined;
        enabled?: boolean | undefined;
        maximumFileSize?: number | undefined;
        allowedFileExtensions?: string[] | undefined;
        compression?: "none" | "gzip" | "zstd" | undefined;
        encryption?: boolean | undefined;
        antivirus?: boolean | undefined;
    }[];
    apiMode: "auto" | "legacy" | "tablesdb";
    appwriteKey?: string | undefined;
    sessionCookie?: string | undefined;
    sessionMetadata?: {
        email?: string | undefined;
        expiresAt?: string | undefined;
    } | undefined;
    collections?: {
        name: string;
        attributes: ({
            key: string;
            required: boolean;
            type: "integer";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "relationship";
            relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
            twoWay: boolean;
            onDelete: "setNull" | "cascade" | "restrict";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            relatedCollection?: string | undefined;
            relatedTable?: string | undefined;
            twoWayKey?: string | undefined;
            side?: "parent" | "child" | undefined;
            importMapping?: {
                originalIdField: string;
                targetField?: string | undefined;
            } | undefined;
        } | {
            key: string;
            required: boolean;
            type: "string";
            size: number;
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "double";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "float";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "boolean";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: boolean | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "datetime";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "email";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "ip";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "url";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "enum";
            elements: string[];
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "varchar";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            size?: number | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "text";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "mediumtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "longtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "point";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "line";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "polygon";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        })[];
        $permissions: {
            permission: string;
            target: string;
        }[];
        indexes: {
            key: string;
            type: "key" | "unique" | "fulltext";
            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?: {
                    name: string;
                    path: string;
                } | undefined;
                converters?: string[] | undefined;
                validationActions?: {
                    action: string;
                    params: string[];
                }[] | undefined;
                postImportActions?: {
                    action: string;
                    params: (string | Record<string, any>)[];
                }[] | 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?: {
                originalIdField: string;
                targetField: string;
            } | undefined;
        }[];
        $id?: string | undefined;
        enabled?: boolean | undefined;
        databaseId?: string | undefined;
        documentSecurity?: boolean | undefined;
        databaseIds?: string[] | undefined;
    }[] | undefined;
    tables?: {
        attributes: ({
            key: string;
            required: boolean;
            type: "integer";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "relationship";
            relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
            twoWay: boolean;
            onDelete: "setNull" | "cascade" | "restrict";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            relatedCollection?: string | undefined;
            relatedTable?: string | undefined;
            twoWayKey?: string | undefined;
            side?: "parent" | "child" | undefined;
            importMapping?: {
                originalIdField: string;
                targetField?: string | undefined;
            } | undefined;
        } | {
            key: string;
            required: boolean;
            type: "string";
            size: number;
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "double";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "float";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            min?: number | undefined;
            max?: number | undefined;
            xdefault?: number | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "boolean";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: boolean | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "datetime";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "email";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "ip";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "url";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "enum";
            elements: string[];
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "varchar";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            size?: number | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "text";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "mediumtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "longtext";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: string | null | undefined;
            encrypt?: boolean | undefined;
        } | {
            key: string;
            required: boolean;
            type: "point";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "line";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        } | {
            key: string;
            required: boolean;
            type: "polygon";
            array?: boolean | undefined;
            format?: string | undefined;
            status?: string | undefined;
            attributes?: string[] | undefined;
            orders?: string[] | undefined;
            $createdAt?: string | undefined;
            $updatedAt?: string | undefined;
            error?: string | undefined;
            xdefault?: any[] | null | undefined;
        })[];
        columns: undefined;
        indexes: {
            key: string;
            type: "key" | "unique" | "fulltext";
            attributes: string[];
            status?: string | undefined;
            error?: string | undefined;
            orders?: string[] | undefined;
        }[];
        name: string;
        $permissions: {
            permission: string;
            target: string;
        }[];
        importDefs: {
            filePath: string;
            primaryKeyField: string;
            attributeMappings: {
                targetKey: string;
                oldKey?: string | undefined;
                oldKeys?: string[] | undefined;
                valueToSet?: any;
                fileData?: {
                    name: string;
                    path: string;
                } | undefined;
                converters?: string[] | undefined;
                validationActions?: {
                    action: string;
                    params: string[];
                }[] | undefined;
                postImportActions?: {
                    action: string;
                    params: (string | Record<string, any>)[];
                }[] | 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?: {
                originalIdField: string;
                targetField: string;
            } | undefined;
        }[];
        $id?: string | undefined;
        enabled?: boolean | undefined;
        databaseId?: string | undefined;
        documentSecurity?: boolean | undefined;
        rowSecurity?: boolean | undefined;
        databaseIds?: string[] | undefined;
        tableId?: string | undefined;
    }[] | undefined;
    functions?: {
        $id: string;
        name: string;
        runtime: any;
        execute: string[];
        dirPath?: string | undefined;
        events?: string[] | undefined;
        schedule?: string | undefined;
        timeout?: number | undefined;
        enabled?: boolean | undefined;
        logging?: boolean | undefined;
        ignore?: string[] | undefined;
        keep?: string[] | undefined;
        entrypoint?: string | undefined;
        predeployCommands?: string[] | undefined;
        deployDir?: string | undefined;
        commands?: string | undefined;
        prebuilt?: boolean | undefined;
        scopes?: ("users.read" | "users.write" | "sessions.read" | "sessions.write" | "teams.read" | "teams.write" | "databases.read" | "databases.write" | "collections.read" | "collections.write" | "tables.read" | "tables.write" | "attributes.read" | "attributes.write" | "indexes.read" | "indexes.write" | "documents.read" | "documents.write" | "rows.read" | "rows.write" | "files.read" | "files.write" | "buckets.read" | "buckets.write" | "functions.read" | "functions.write" | "execution.read" | "execution.write" | "locale.read" | "avatars.read" | "health.read" | "rules.read" | "rules.write" | "migrations.read" | "migrations.write" | "sites.read" | "sites.write" | "log.read" | "log.write" | "tokens.read" | "tokens.write" | "vcs.read" | "vcs.write" | "assistant.read" | "messages.read" | "messages.write" | "targets.read" | "targets.write" | "providers.read" | "providers.write" | "topics.read" | "topics.write" | "subscribers.read" | "subscribers.write")[] | undefined;
        installationId?: string | undefined;
        providerRepositoryId?: string | undefined;
        providerBranch?: string | undefined;
        providerSilentMode?: boolean | undefined;
        providerRootDirectory?: string | undefined;
        templateRepository?: string | undefined;
        templateOwner?: string | undefined;
        templateRootDirectory?: string | undefined;
        templateVersion?: string | undefined;
        buildSpecification?: "s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb" | undefined;
        runtimeSpecification?: "s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb" | undefined;
        domains?: string[] | undefined;
    }[] | undefined;
    sites?: {
        $id: string;
        name: string;
        framework: "analog" | "angular" | "nextjs" | "react" | "nuxt" | "vue" | "sveltekit" | "astro" | "tanstack-start" | "remix" | "lynx" | "flutter" | "react-native" | "vite" | "other";
        buildRuntime: "node-14.5" | "node-16.0" | "node-18.0" | "node-19.0" | "node-20.0" | "node-21.0" | "node-22" | "bun-1.0" | "bun-1.1" | "bun-1.3" | "deno-1.40" | "deno-1.46" | "deno-2.0" | "go-1.23" | "python-3.8" | "python-3.9" | "python-3.10" | "python-3.11" | "python-3.12" | "python-ml-3.11" | "dart-2.15" | "dart-2.16" | "dart-2.17" | "dart-2.18" | "dart-3.0" | "dart-3.1" | "dart-3.3" | "dart-3.5" | "php-8.0" | "php-8.1" | "php-8.2" | "php-8.3" | "ruby-3.0" | "ruby-3.1" | "ruby-3.2" | "ruby-3.3" | "dotnet-6.0" | "dotnet-7.0" | "dotnet-8.0" | "java-8.0" | "java-11.0" | "java-17.0" | "java-18.0" | "java-21.0" | "java-22" | "swift-5.5" | "swift-5.8" | "swift-5.9" | "swift-5.10" | "kotlin-1.6" | "kotlin-1.8" | "kotlin-1.9" | "kotlin-2.0" | "cpp-17" | "cpp-20" | "node-23" | "node-24" | "node-25" | "php-8.4" | "ruby-3.4" | "ruby-4.0" | "python-3.13" | "python-3.14" | "python-ml-3.12" | "python-ml-3.13" | "deno-2.5" | "deno-2.6" | "dart-2.19" | "dart-3.8" | "dart-3.9" | "dart-3.10" | "dotnet-10" | "java-25" | "swift-6.2" | "kotlin-2.3" | "bun-1.2" | "go-1.24" | "go-1.25" | "go-1.26" | "static-1" | "flutter-3.24" | "flutter-3.27" | "flutter-3.29" | "flutter-3.32" | "flutter-3.35" | "flutter-3.38";
        dirPath?: string | undefined;
        enabled?: boolean | undefined;
        logging?: boolean | undefined;
        timeout?: number | undefined;
        installCommand?: string | undefined;
        buildCommand?: string | undefined;
        outputDirectory?: string | undefined;
        adapter?: "static" | "ssr" | undefined;
        fallbackFile?: string | undefined;
        installationId?: string | undefined;
        providerRepositoryId?: string | undefined;
        providerBranch?: string | undefined;
        providerSilentMode?: boolean | undefined;
        providerRootDirectory?: string | undefined;
        buildSpecification?: "s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb" | undefined;
        runtimeSpecification?: "s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb" | undefined;
        predeployCommands?: string[] | undefined;
        deployDir?: string | undefined;
        ignore?: string[] | undefined;
        prebuilt?: boolean | undefined;
        domains?: string[] | undefined;
    }[] | undefined;
    schemaConfig?: {
        outputDirectory: string;
        yamlSchemaDirectory: string;
        importDirectory: string;
        collectionsDirectory: string;
        tablesDirectory: string;
    } | undefined;
}>>;
export type AppwriteConfig = z.infer<typeof AppwriteConfigSchema>;
export type ConfigCollections = Collections;
export type ConfigCollection = Collection;
export type ConfigTables = Tables;
export type ConfigTable = Table;
export type ConfigDatabases = AppwriteConfig["databases"];
export type ConfigDatabase = ConfigDatabases[number];
