import { Guard } from "../auth";
import { EventManager } from "../core/events";
import { type Static } from "../core/utils";
import { type Connection, EntityManager, type Schema } from "../data";
import { Hono } from "hono";
import { AppServer } from "../modules/server/AppServer";
import { AppAuth } from "../auth/AppAuth";
import { AppData } from "../data/AppData";
import { AppFlows } from "../flows/AppFlows";
import { AppMedia } from "../media/AppMedia";
import type { ServerEnv } from "./Controller";
import { type ModuleBuildContext } from "./Module";
import * as tbbox from "@sinclair/typebox";
export type { ModuleBuildContext };
export declare const MODULES: {
    readonly server: typeof AppServer;
    readonly data: typeof AppData;
    readonly auth: typeof AppAuth;
    readonly media: typeof AppMedia;
    readonly flows: typeof AppFlows;
};
export declare const MODULE_NAMES: ModuleKey[];
export type ModuleKey = keyof typeof MODULES;
export type Modules = {
    [K in keyof typeof MODULES]: InstanceType<(typeof MODULES)[K]>;
};
export type ModuleSchemas = {
    [K in keyof typeof MODULES]: ReturnType<(typeof MODULES)[K]["prototype"]["getSchema"]>;
};
export type ModuleConfigs = {
    [K in keyof ModuleSchemas]: Static<ModuleSchemas[K]>;
};
type PartialRec<T> = {
    [P in keyof T]?: PartialRec<T[P]>;
};
export type InitialModuleConfigs = ({
    version: number;
} & ModuleConfigs) | PartialRec<ModuleConfigs>;
declare enum Verbosity {
    silent = 0,
    error = 1,
    log = 2
}
export type ModuleManagerOptions = {
    initial?: InitialModuleConfigs;
    eventManager?: EventManager<any>;
    onUpdated?: <Module extends keyof Modules>(module: Module, config: ModuleConfigs[Module]) => Promise<void>;
    onFirstBoot?: () => Promise<void>;
    basePath?: string;
    onServerInit?: (server: Hono<ServerEnv>) => void;
    trustFetched?: boolean;
    seed?: (ctx: ModuleBuildContext) => Promise<void>;
    /** @deprecated */
    verbosity?: Verbosity;
};
export type ConfigTable<Json = ModuleConfigs> = {
    id?: number;
    version: number;
    type: "config" | "diff" | "backup";
    json: Json;
    created_at?: Date;
    updated_at?: Date;
};
export declare const __bknd: import("../data").Entity<"__bknd", {
    version: import("../data").NumberField<true>;
    type: import("../data").EnumField<true, string>;
    json: import("../data").JsonSchemaField<true, object>;
    created_at: import("../data").DateField<false> & {
        required: () => import("../data").DateField<true>;
    };
    updated_at: import("../data").DateField<false> & {
        required: () => import("../data").DateField<true>;
    };
}>;
type ConfigTable2 = Schema<typeof __bknd>;
interface T_INTERNAL_EM {
    __bknd: ConfigTable2;
}
export declare class ModuleManager {
    private readonly connection;
    private options?;
    protected modules: Modules;
    __em: EntityManager<T_INTERNAL_EM>;
    em: EntityManager;
    server: Hono<ServerEnv>;
    emgr: EventManager;
    guard: Guard;
    private _version;
    private _built;
    private readonly _booted_with?;
    private _stable_configs;
    private logger;
    constructor(connection: Connection, options?: Partial<ModuleManagerOptions> | undefined);
    private createModules;
    private get verbosity();
    isBuilt(): boolean;
    /**
     * This is set through module's setListener
     * It's called everytime a module's config is updated in SchemaObject
     * Needs to rebuild modules and save to database
     */
    private onModuleConfigUpdated;
    private repo;
    private mutator;
    private get db();
    syncConfigTable(): Promise<{
        sql: string;
        parameters: readonly unknown[];
    }[]>;
    private rebuildServer;
    ctx(rebuild?: boolean): ModuleBuildContext;
    private fetch;
    save(): Promise<this>;
    private revertModules;
    /**
     * Validates received diffs for an additional security control.
     * Checks:
     *   - check if module is registered
     *   - run modules onBeforeUpdate() for added protection
     *
     * **Important**: Throw `Error` so it won't get catched.
     *
     * @param diffs
     * @private
     */
    private validateDiffs;
    private setConfigs;
    build(opts?: {
        fetch?: boolean;
    }): Promise<this>;
    private buildModules;
    protected setupInitial(): Promise<void>;
    mutateConfigSafe<Module extends keyof Modules>(name: Module): Pick<ReturnType<Modules[Module]["schema"]>, "set" | "patch" | "overwrite" | "remove">;
    get<K extends keyof Modules>(key: K): Modules[K];
    version(): number;
    built(): boolean;
    configs(): ModuleConfigs;
    getSchema(): {
        server: tbbox.TObject<{
            enabled: tbbox.TBoolean;
            basepath: tbbox.TString;
            entity_name: tbbox.TString;
            storage: tbbox.TObject<{
                body_max_size: tbbox.TOptional<tbbox.TNumber>;
            }>;
            adapter: tbbox.TOptional<tbbox.TUnion<tbbox.TObject<{
                type: tbbox.TLiteral<string>;
                config: tbbox.TObject<tbbox.TProperties>;
            }>[]>>;
        }> | tbbox.TObject<{
            enabled: tbbox.TBoolean;
            basepath: tbbox.TString;
            entity_name: tbbox.TString;
            allow_register: tbbox.TOptional<tbbox.TBoolean>;
            jwt: tbbox.TObject<{
                secret: tbbox.TString;
                alg: tbbox.TOptional<tbbox.TUnsafe<"HS256" | "HS384" | "HS512">>;
                expires: tbbox.TOptional<tbbox.TNumber>;
                issuer: tbbox.TOptional<tbbox.TString>;
                fields: tbbox.TArray<tbbox.TString>;
            }>;
            cookie: tbbox.TObject<{
                path: tbbox.TOptional<tbbox.TString>;
                sameSite: tbbox.TOptional<tbbox.TUnsafe<"strict" | "lax" | "none">>;
                secure: tbbox.TOptional<tbbox.TBoolean>;
                httpOnly: tbbox.TOptional<tbbox.TBoolean>;
                expires: tbbox.TOptional<tbbox.TNumber>;
                renew: tbbox.TOptional<tbbox.TBoolean>;
                pathSuccess: tbbox.TOptional<tbbox.TString>;
                pathLoggedOut: tbbox.TOptional<tbbox.TString>;
            }>;
            strategies: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                enabled: tbbox.TOptional<tbbox.TBoolean>;
                type: tbbox.TLiteral<"password"> | tbbox.TLiteral<"oauth"> | tbbox.TLiteral<"custom_oauth">;
                config: tbbox.TObject<{
                    hashing: tbbox.TUnsafe<"plain" | "sha256" | "bcrypt">;
                    rounds: tbbox.TOptional<tbbox.TNumber>;
                }> | tbbox.TObject<{
                    name: tbbox.TUnsafe<"google" | "github">;
                    type: tbbox.TUnsafe<"oidc" | "oauth2">;
                    client: tbbox.TObject<{
                        client_id: tbbox.TString;
                        client_secret: tbbox.TString;
                    }>;
                }> | tbbox.TObject<{
                    type: tbbox.TUnsafe<"oidc" | "oauth2">;
                    name: tbbox.TString;
                    client: tbbox.TObject<{
                        client_id: tbbox.TString;
                        client_secret: tbbox.TString;
                        token_endpoint_auth_method: tbbox.TUnsafe<"client_secret_basic">;
                    }>;
                    as: tbbox.TObject<{
                        issuer: tbbox.TString;
                        code_challenge_methods_supported: tbbox.TOptional<tbbox.TUnsafe<"S256">>;
                        scopes_supported: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                        scope_separator: tbbox.TOptional<tbbox.TString>;
                        authorization_endpoint: tbbox.TOptional<tbbox.TString>;
                        token_endpoint: tbbox.TOptional<tbbox.TString>;
                        userinfo_endpoint: tbbox.TOptional<tbbox.TString>;
                    }>;
                }>;
            }>[]>>>;
            guard: tbbox.TOptional<tbbox.TObject<{
                enabled: tbbox.TOptional<tbbox.TBoolean>;
            }>>;
            roles: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                permissions: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                is_default: tbbox.TOptional<tbbox.TBoolean>;
                implicit_allow: tbbox.TOptional<tbbox.TBoolean>;
            }>>>;
        }> | tbbox.TObject<{
            cors: tbbox.TObject<{
                origin: tbbox.TString;
                allow_methods: tbbox.TArray<tbbox.TUnsafe<string>>;
                allow_headers: tbbox.TArray<tbbox.TString>;
            }>;
        }> | tbbox.TObject<{
            basepath: tbbox.TOptional<tbbox.TString>;
            default_primary_format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
            entities: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                type: tbbox.TOptional<tbbox.TString>;
                config: tbbox.TOptional<tbbox.TObject<{
                    name: tbbox.TOptional<tbbox.TString>;
                    name_singular: tbbox.TOptional<tbbox.TString>;
                    description: tbbox.TOptional<tbbox.TString>;
                    sort_field: tbbox.TOptional<tbbox.TString>;
                    sort_dir: tbbox.TOptional<tbbox.TUnsafe<"asc" | "desc">>;
                    primary_format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
                }>>;
                fields: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"number"> | tbbox.TLiteral<"boolean"> | tbbox.TLiteral<"json"> | tbbox.TLiteral<"text"> | tbbox.TLiteral<"media"> | tbbox.TLiteral<"enum"> | tbbox.TLiteral<"date"> | tbbox.TLiteral<"primary"> | tbbox.TLiteral<"relation"> | tbbox.TLiteral<"jsonschema">;
                    config: tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>;
                        minLength: tbbox.TOptional<tbbox.TNumber>;
                        maxLength: tbbox.TOptional<tbbox.TNumber>;
                        pattern: tbbox.TOptional<tbbox.TString>;
                        html_config: tbbox.TOptional<tbbox.TObject<{
                            element: tbbox.TOptional<tbbox.TString>;
                            props: tbbox.TOptional<tbbox.TObject<{}>>;
                        }>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TBoolean, tbbox.TAny]>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TNumber, tbbox.TAny]>>;
                        minimum: tbbox.TOptional<tbbox.TNumber>;
                        maximum: tbbox.TOptional<tbbox.TNumber>;
                        exclusiveMinimum: tbbox.TOptional<tbbox.TNumber>;
                        exclusiveMaximum: tbbox.TOptional<tbbox.TNumber>;
                        multipleOf: tbbox.TOptional<tbbox.TNumber>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        type: tbbox.TUnsafe<"date" | "week" | "datetime">;
                        timezone: tbbox.TOptional<tbbox.TString>;
                        min_date: tbbox.TOptional<tbbox.TString>;
                        max_date: tbbox.TOptional<tbbox.TString>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                        reference: tbbox.TString;
                        target: tbbox.TString;
                        target_field: tbbox.TOptional<tbbox.TString>;
                        target_field_type: tbbox.TOptional<tbbox.TUnsafe<"text" | "integer">>;
                        on_delete: tbbox.TOptional<tbbox.TUnsafe<"no action" | "restrict" | "cascade" | "set null" | "set default">>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                        required: tbbox.TOptional<tbbox.TLiteral<false>>;
                        format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        entity: tbbox.TString;
                        min_items: tbbox.TOptional<tbbox.TNumber>;
                        max_items: tbbox.TOptional<tbbox.TNumber>;
                        mime_types: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>;
                        options: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{
                            type: tbbox.TLiteral<"strings">;
                            values: tbbox.TArray<tbbox.TString>;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"objects">;
                            values: tbbox.TArray<tbbox.TObject<{
                                label: tbbox.TString;
                                value: tbbox.TString;
                            }>>;
                        }>]>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        schema: tbbox.TObject<{}>;
                        ui_schema: tbbox.TOptional<tbbox.TObject<{}>>;
                        default_from_schema: tbbox.TOptional<tbbox.TBoolean>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>>;
                }>[]>>>;
            }>>>;
            relations: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                type: tbbox.TLiteral<string>;
                source: tbbox.TString;
                target: tbbox.TString;
                config: tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    connectionTable: tbbox.TOptional<tbbox.TString>;
                    connectionTableMappedName: tbbox.TOptional<tbbox.TString>;
                }>> | tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    sourceCardinality: tbbox.TOptional<tbbox.TNumber>;
                    with_limit: tbbox.TOptional<tbbox.TNumber>;
                    fieldConfig: tbbox.TOptional<tbbox.TObject<{
                        label: tbbox.TString;
                    }>>;
                }>> | tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    targetCardinality: tbbox.TOptional<tbbox.TNumber>;
                }>>;
            }>[]>>>;
            indices: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                entity: tbbox.TString;
                fields: tbbox.TArray<tbbox.TString>;
                unique: tbbox.TOptional<tbbox.TBoolean>;
            }>>>;
        }> | tbbox.TObject<{
            basepath: tbbox.TString;
            flows: tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                trigger: tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"manual" | "event" | "http">;
                    config: tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                    }> | tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                        event: tbbox.TString;
                    }> | tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                        path: tbbox.TString;
                        method: tbbox.TUnsafe<"GET" | "POST" | "PATCH" | "PUT" | "DELETE">;
                        response_type: tbbox.TUnsafe<"json" | "text" | "html">;
                    }>;
                }>[]>;
                tasks: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"log" | "fetch" | "render" | "subflow">;
                    params: tbbox.TObject<{
                        url: tbbox.TString;
                        method: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TUnsafe<string>, tbbox.TString]>, string>>;
                        headers: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TArray<tbbox.TObject<{
                            key: tbbox.TString;
                            value: tbbox.TString;
                        }>>, tbbox.TString]>, {
                            key: string;
                            value: string;
                        }[]>>;
                        body: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TString, tbbox.TString]>, string>>;
                        normal: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TNumber, tbbox.TString]>, number>>;
                    }> | tbbox.TObject<{
                        delay: tbbox.TNumber;
                    }> | tbbox.TObject<{
                        render: tbbox.TString;
                    }> | tbbox.TObject<{
                        flow: tbbox.TAny;
                        input: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TAny, tbbox.TString]>, any>>;
                        loop: tbbox.TOptional<tbbox.TBoolean>;
                    }>;
                }>[]>>>;
                connections: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                    source: tbbox.TString;
                    target: tbbox.TString;
                    config: tbbox.TObject<{
                        condition: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{
                            type: tbbox.TLiteral<"success">;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"error">;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"matches">;
                            path: tbbox.TString;
                            value: tbbox.TString;
                        }>]>>;
                        max_retries: tbbox.TOptional<tbbox.TNumber>;
                    }>;
                }>>>;
                start_task: tbbox.TOptional<tbbox.TString>;
                responding_task: tbbox.TOptional<tbbox.TString>;
            }>>;
        }>;
        data: tbbox.TObject<{
            enabled: tbbox.TBoolean;
            basepath: tbbox.TString;
            entity_name: tbbox.TString;
            storage: tbbox.TObject<{
                body_max_size: tbbox.TOptional<tbbox.TNumber>;
            }>;
            adapter: tbbox.TOptional<tbbox.TUnion<tbbox.TObject<{
                type: tbbox.TLiteral<string>;
                config: tbbox.TObject<tbbox.TProperties>;
            }>[]>>;
        }> | tbbox.TObject<{
            enabled: tbbox.TBoolean;
            basepath: tbbox.TString;
            entity_name: tbbox.TString;
            allow_register: tbbox.TOptional<tbbox.TBoolean>;
            jwt: tbbox.TObject<{
                secret: tbbox.TString;
                alg: tbbox.TOptional<tbbox.TUnsafe<"HS256" | "HS384" | "HS512">>;
                expires: tbbox.TOptional<tbbox.TNumber>;
                issuer: tbbox.TOptional<tbbox.TString>;
                fields: tbbox.TArray<tbbox.TString>;
            }>;
            cookie: tbbox.TObject<{
                path: tbbox.TOptional<tbbox.TString>;
                sameSite: tbbox.TOptional<tbbox.TUnsafe<"strict" | "lax" | "none">>;
                secure: tbbox.TOptional<tbbox.TBoolean>;
                httpOnly: tbbox.TOptional<tbbox.TBoolean>;
                expires: tbbox.TOptional<tbbox.TNumber>;
                renew: tbbox.TOptional<tbbox.TBoolean>;
                pathSuccess: tbbox.TOptional<tbbox.TString>;
                pathLoggedOut: tbbox.TOptional<tbbox.TString>;
            }>;
            strategies: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                enabled: tbbox.TOptional<tbbox.TBoolean>;
                type: tbbox.TLiteral<"password"> | tbbox.TLiteral<"oauth"> | tbbox.TLiteral<"custom_oauth">;
                config: tbbox.TObject<{
                    hashing: tbbox.TUnsafe<"plain" | "sha256" | "bcrypt">;
                    rounds: tbbox.TOptional<tbbox.TNumber>;
                }> | tbbox.TObject<{
                    name: tbbox.TUnsafe<"google" | "github">;
                    type: tbbox.TUnsafe<"oidc" | "oauth2">;
                    client: tbbox.TObject<{
                        client_id: tbbox.TString;
                        client_secret: tbbox.TString;
                    }>;
                }> | tbbox.TObject<{
                    type: tbbox.TUnsafe<"oidc" | "oauth2">;
                    name: tbbox.TString;
                    client: tbbox.TObject<{
                        client_id: tbbox.TString;
                        client_secret: tbbox.TString;
                        token_endpoint_auth_method: tbbox.TUnsafe<"client_secret_basic">;
                    }>;
                    as: tbbox.TObject<{
                        issuer: tbbox.TString;
                        code_challenge_methods_supported: tbbox.TOptional<tbbox.TUnsafe<"S256">>;
                        scopes_supported: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                        scope_separator: tbbox.TOptional<tbbox.TString>;
                        authorization_endpoint: tbbox.TOptional<tbbox.TString>;
                        token_endpoint: tbbox.TOptional<tbbox.TString>;
                        userinfo_endpoint: tbbox.TOptional<tbbox.TString>;
                    }>;
                }>;
            }>[]>>>;
            guard: tbbox.TOptional<tbbox.TObject<{
                enabled: tbbox.TOptional<tbbox.TBoolean>;
            }>>;
            roles: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                permissions: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                is_default: tbbox.TOptional<tbbox.TBoolean>;
                implicit_allow: tbbox.TOptional<tbbox.TBoolean>;
            }>>>;
        }> | tbbox.TObject<{
            cors: tbbox.TObject<{
                origin: tbbox.TString;
                allow_methods: tbbox.TArray<tbbox.TUnsafe<string>>;
                allow_headers: tbbox.TArray<tbbox.TString>;
            }>;
        }> | tbbox.TObject<{
            basepath: tbbox.TOptional<tbbox.TString>;
            default_primary_format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
            entities: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                type: tbbox.TOptional<tbbox.TString>;
                config: tbbox.TOptional<tbbox.TObject<{
                    name: tbbox.TOptional<tbbox.TString>;
                    name_singular: tbbox.TOptional<tbbox.TString>;
                    description: tbbox.TOptional<tbbox.TString>;
                    sort_field: tbbox.TOptional<tbbox.TString>;
                    sort_dir: tbbox.TOptional<tbbox.TUnsafe<"asc" | "desc">>;
                    primary_format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
                }>>;
                fields: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"number"> | tbbox.TLiteral<"boolean"> | tbbox.TLiteral<"json"> | tbbox.TLiteral<"text"> | tbbox.TLiteral<"media"> | tbbox.TLiteral<"enum"> | tbbox.TLiteral<"date"> | tbbox.TLiteral<"primary"> | tbbox.TLiteral<"relation"> | tbbox.TLiteral<"jsonschema">;
                    config: tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>;
                        minLength: tbbox.TOptional<tbbox.TNumber>;
                        maxLength: tbbox.TOptional<tbbox.TNumber>;
                        pattern: tbbox.TOptional<tbbox.TString>;
                        html_config: tbbox.TOptional<tbbox.TObject<{
                            element: tbbox.TOptional<tbbox.TString>;
                            props: tbbox.TOptional<tbbox.TObject<{}>>;
                        }>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TBoolean, tbbox.TAny]>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TNumber, tbbox.TAny]>>;
                        minimum: tbbox.TOptional<tbbox.TNumber>;
                        maximum: tbbox.TOptional<tbbox.TNumber>;
                        exclusiveMinimum: tbbox.TOptional<tbbox.TNumber>;
                        exclusiveMaximum: tbbox.TOptional<tbbox.TNumber>;
                        multipleOf: tbbox.TOptional<tbbox.TNumber>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        type: tbbox.TUnsafe<"date" | "week" | "datetime">;
                        timezone: tbbox.TOptional<tbbox.TString>;
                        min_date: tbbox.TOptional<tbbox.TString>;
                        max_date: tbbox.TOptional<tbbox.TString>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                        reference: tbbox.TString;
                        target: tbbox.TString;
                        target_field: tbbox.TOptional<tbbox.TString>;
                        target_field_type: tbbox.TOptional<tbbox.TUnsafe<"text" | "integer">>;
                        on_delete: tbbox.TOptional<tbbox.TUnsafe<"no action" | "restrict" | "cascade" | "set null" | "set default">>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                        required: tbbox.TOptional<tbbox.TLiteral<false>>;
                        format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        entity: tbbox.TString;
                        min_items: tbbox.TOptional<tbbox.TNumber>;
                        max_items: tbbox.TOptional<tbbox.TNumber>;
                        mime_types: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>;
                        options: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{
                            type: tbbox.TLiteral<"strings">;
                            values: tbbox.TArray<tbbox.TString>;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"objects">;
                            values: tbbox.TArray<tbbox.TObject<{
                                label: tbbox.TString;
                                value: tbbox.TString;
                            }>>;
                        }>]>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        schema: tbbox.TObject<{}>;
                        ui_schema: tbbox.TOptional<tbbox.TObject<{}>>;
                        default_from_schema: tbbox.TOptional<tbbox.TBoolean>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>>;
                }>[]>>>;
            }>>>;
            relations: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                type: tbbox.TLiteral<string>;
                source: tbbox.TString;
                target: tbbox.TString;
                config: tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    connectionTable: tbbox.TOptional<tbbox.TString>;
                    connectionTableMappedName: tbbox.TOptional<tbbox.TString>;
                }>> | tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    sourceCardinality: tbbox.TOptional<tbbox.TNumber>;
                    with_limit: tbbox.TOptional<tbbox.TNumber>;
                    fieldConfig: tbbox.TOptional<tbbox.TObject<{
                        label: tbbox.TString;
                    }>>;
                }>> | tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    targetCardinality: tbbox.TOptional<tbbox.TNumber>;
                }>>;
            }>[]>>>;
            indices: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                entity: tbbox.TString;
                fields: tbbox.TArray<tbbox.TString>;
                unique: tbbox.TOptional<tbbox.TBoolean>;
            }>>>;
        }> | tbbox.TObject<{
            basepath: tbbox.TString;
            flows: tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                trigger: tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"manual" | "event" | "http">;
                    config: tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                    }> | tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                        event: tbbox.TString;
                    }> | tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                        path: tbbox.TString;
                        method: tbbox.TUnsafe<"GET" | "POST" | "PATCH" | "PUT" | "DELETE">;
                        response_type: tbbox.TUnsafe<"json" | "text" | "html">;
                    }>;
                }>[]>;
                tasks: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"log" | "fetch" | "render" | "subflow">;
                    params: tbbox.TObject<{
                        url: tbbox.TString;
                        method: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TUnsafe<string>, tbbox.TString]>, string>>;
                        headers: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TArray<tbbox.TObject<{
                            key: tbbox.TString;
                            value: tbbox.TString;
                        }>>, tbbox.TString]>, {
                            key: string;
                            value: string;
                        }[]>>;
                        body: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TString, tbbox.TString]>, string>>;
                        normal: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TNumber, tbbox.TString]>, number>>;
                    }> | tbbox.TObject<{
                        delay: tbbox.TNumber;
                    }> | tbbox.TObject<{
                        render: tbbox.TString;
                    }> | tbbox.TObject<{
                        flow: tbbox.TAny;
                        input: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TAny, tbbox.TString]>, any>>;
                        loop: tbbox.TOptional<tbbox.TBoolean>;
                    }>;
                }>[]>>>;
                connections: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                    source: tbbox.TString;
                    target: tbbox.TString;
                    config: tbbox.TObject<{
                        condition: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{
                            type: tbbox.TLiteral<"success">;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"error">;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"matches">;
                            path: tbbox.TString;
                            value: tbbox.TString;
                        }>]>>;
                        max_retries: tbbox.TOptional<tbbox.TNumber>;
                    }>;
                }>>>;
                start_task: tbbox.TOptional<tbbox.TString>;
                responding_task: tbbox.TOptional<tbbox.TString>;
            }>>;
        }>;
        auth: tbbox.TObject<{
            enabled: tbbox.TBoolean;
            basepath: tbbox.TString;
            entity_name: tbbox.TString;
            storage: tbbox.TObject<{
                body_max_size: tbbox.TOptional<tbbox.TNumber>;
            }>;
            adapter: tbbox.TOptional<tbbox.TUnion<tbbox.TObject<{
                type: tbbox.TLiteral<string>;
                config: tbbox.TObject<tbbox.TProperties>;
            }>[]>>;
        }> | tbbox.TObject<{
            enabled: tbbox.TBoolean;
            basepath: tbbox.TString;
            entity_name: tbbox.TString;
            allow_register: tbbox.TOptional<tbbox.TBoolean>;
            jwt: tbbox.TObject<{
                secret: tbbox.TString;
                alg: tbbox.TOptional<tbbox.TUnsafe<"HS256" | "HS384" | "HS512">>;
                expires: tbbox.TOptional<tbbox.TNumber>;
                issuer: tbbox.TOptional<tbbox.TString>;
                fields: tbbox.TArray<tbbox.TString>;
            }>;
            cookie: tbbox.TObject<{
                path: tbbox.TOptional<tbbox.TString>;
                sameSite: tbbox.TOptional<tbbox.TUnsafe<"strict" | "lax" | "none">>;
                secure: tbbox.TOptional<tbbox.TBoolean>;
                httpOnly: tbbox.TOptional<tbbox.TBoolean>;
                expires: tbbox.TOptional<tbbox.TNumber>;
                renew: tbbox.TOptional<tbbox.TBoolean>;
                pathSuccess: tbbox.TOptional<tbbox.TString>;
                pathLoggedOut: tbbox.TOptional<tbbox.TString>;
            }>;
            strategies: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                enabled: tbbox.TOptional<tbbox.TBoolean>;
                type: tbbox.TLiteral<"password"> | tbbox.TLiteral<"oauth"> | tbbox.TLiteral<"custom_oauth">;
                config: tbbox.TObject<{
                    hashing: tbbox.TUnsafe<"plain" | "sha256" | "bcrypt">;
                    rounds: tbbox.TOptional<tbbox.TNumber>;
                }> | tbbox.TObject<{
                    name: tbbox.TUnsafe<"google" | "github">;
                    type: tbbox.TUnsafe<"oidc" | "oauth2">;
                    client: tbbox.TObject<{
                        client_id: tbbox.TString;
                        client_secret: tbbox.TString;
                    }>;
                }> | tbbox.TObject<{
                    type: tbbox.TUnsafe<"oidc" | "oauth2">;
                    name: tbbox.TString;
                    client: tbbox.TObject<{
                        client_id: tbbox.TString;
                        client_secret: tbbox.TString;
                        token_endpoint_auth_method: tbbox.TUnsafe<"client_secret_basic">;
                    }>;
                    as: tbbox.TObject<{
                        issuer: tbbox.TString;
                        code_challenge_methods_supported: tbbox.TOptional<tbbox.TUnsafe<"S256">>;
                        scopes_supported: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                        scope_separator: tbbox.TOptional<tbbox.TString>;
                        authorization_endpoint: tbbox.TOptional<tbbox.TString>;
                        token_endpoint: tbbox.TOptional<tbbox.TString>;
                        userinfo_endpoint: tbbox.TOptional<tbbox.TString>;
                    }>;
                }>;
            }>[]>>>;
            guard: tbbox.TOptional<tbbox.TObject<{
                enabled: tbbox.TOptional<tbbox.TBoolean>;
            }>>;
            roles: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                permissions: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                is_default: tbbox.TOptional<tbbox.TBoolean>;
                implicit_allow: tbbox.TOptional<tbbox.TBoolean>;
            }>>>;
        }> | tbbox.TObject<{
            cors: tbbox.TObject<{
                origin: tbbox.TString;
                allow_methods: tbbox.TArray<tbbox.TUnsafe<string>>;
                allow_headers: tbbox.TArray<tbbox.TString>;
            }>;
        }> | tbbox.TObject<{
            basepath: tbbox.TOptional<tbbox.TString>;
            default_primary_format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
            entities: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                type: tbbox.TOptional<tbbox.TString>;
                config: tbbox.TOptional<tbbox.TObject<{
                    name: tbbox.TOptional<tbbox.TString>;
                    name_singular: tbbox.TOptional<tbbox.TString>;
                    description: tbbox.TOptional<tbbox.TString>;
                    sort_field: tbbox.TOptional<tbbox.TString>;
                    sort_dir: tbbox.TOptional<tbbox.TUnsafe<"asc" | "desc">>;
                    primary_format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
                }>>;
                fields: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"number"> | tbbox.TLiteral<"boolean"> | tbbox.TLiteral<"json"> | tbbox.TLiteral<"text"> | tbbox.TLiteral<"media"> | tbbox.TLiteral<"enum"> | tbbox.TLiteral<"date"> | tbbox.TLiteral<"primary"> | tbbox.TLiteral<"relation"> | tbbox.TLiteral<"jsonschema">;
                    config: tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>;
                        minLength: tbbox.TOptional<tbbox.TNumber>;
                        maxLength: tbbox.TOptional<tbbox.TNumber>;
                        pattern: tbbox.TOptional<tbbox.TString>;
                        html_config: tbbox.TOptional<tbbox.TObject<{
                            element: tbbox.TOptional<tbbox.TString>;
                            props: tbbox.TOptional<tbbox.TObject<{}>>;
                        }>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TBoolean, tbbox.TAny]>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TNumber, tbbox.TAny]>>;
                        minimum: tbbox.TOptional<tbbox.TNumber>;
                        maximum: tbbox.TOptional<tbbox.TNumber>;
                        exclusiveMinimum: tbbox.TOptional<tbbox.TNumber>;
                        exclusiveMaximum: tbbox.TOptional<tbbox.TNumber>;
                        multipleOf: tbbox.TOptional<tbbox.TNumber>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        type: tbbox.TUnsafe<"date" | "week" | "datetime">;
                        timezone: tbbox.TOptional<tbbox.TString>;
                        min_date: tbbox.TOptional<tbbox.TString>;
                        max_date: tbbox.TOptional<tbbox.TString>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                        reference: tbbox.TString;
                        target: tbbox.TString;
                        target_field: tbbox.TOptional<tbbox.TString>;
                        target_field_type: tbbox.TOptional<tbbox.TUnsafe<"text" | "integer">>;
                        on_delete: tbbox.TOptional<tbbox.TUnsafe<"no action" | "restrict" | "cascade" | "set null" | "set default">>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                        required: tbbox.TOptional<tbbox.TLiteral<false>>;
                        format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        entity: tbbox.TString;
                        min_items: tbbox.TOptional<tbbox.TNumber>;
                        max_items: tbbox.TOptional<tbbox.TNumber>;
                        mime_types: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>;
                        options: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{
                            type: tbbox.TLiteral<"strings">;
                            values: tbbox.TArray<tbbox.TString>;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"objects">;
                            values: tbbox.TArray<tbbox.TObject<{
                                label: tbbox.TString;
                                value: tbbox.TString;
                            }>>;
                        }>]>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        schema: tbbox.TObject<{}>;
                        ui_schema: tbbox.TOptional<tbbox.TObject<{}>>;
                        default_from_schema: tbbox.TOptional<tbbox.TBoolean>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>>;
                }>[]>>>;
            }>>>;
            relations: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                type: tbbox.TLiteral<string>;
                source: tbbox.TString;
                target: tbbox.TString;
                config: tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    connectionTable: tbbox.TOptional<tbbox.TString>;
                    connectionTableMappedName: tbbox.TOptional<tbbox.TString>;
                }>> | tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    sourceCardinality: tbbox.TOptional<tbbox.TNumber>;
                    with_limit: tbbox.TOptional<tbbox.TNumber>;
                    fieldConfig: tbbox.TOptional<tbbox.TObject<{
                        label: tbbox.TString;
                    }>>;
                }>> | tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    targetCardinality: tbbox.TOptional<tbbox.TNumber>;
                }>>;
            }>[]>>>;
            indices: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                entity: tbbox.TString;
                fields: tbbox.TArray<tbbox.TString>;
                unique: tbbox.TOptional<tbbox.TBoolean>;
            }>>>;
        }> | tbbox.TObject<{
            basepath: tbbox.TString;
            flows: tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                trigger: tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"manual" | "event" | "http">;
                    config: tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                    }> | tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                        event: tbbox.TString;
                    }> | tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                        path: tbbox.TString;
                        method: tbbox.TUnsafe<"GET" | "POST" | "PATCH" | "PUT" | "DELETE">;
                        response_type: tbbox.TUnsafe<"json" | "text" | "html">;
                    }>;
                }>[]>;
                tasks: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"log" | "fetch" | "render" | "subflow">;
                    params: tbbox.TObject<{
                        url: tbbox.TString;
                        method: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TUnsafe<string>, tbbox.TString]>, string>>;
                        headers: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TArray<tbbox.TObject<{
                            key: tbbox.TString;
                            value: tbbox.TString;
                        }>>, tbbox.TString]>, {
                            key: string;
                            value: string;
                        }[]>>;
                        body: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TString, tbbox.TString]>, string>>;
                        normal: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TNumber, tbbox.TString]>, number>>;
                    }> | tbbox.TObject<{
                        delay: tbbox.TNumber;
                    }> | tbbox.TObject<{
                        render: tbbox.TString;
                    }> | tbbox.TObject<{
                        flow: tbbox.TAny;
                        input: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TAny, tbbox.TString]>, any>>;
                        loop: tbbox.TOptional<tbbox.TBoolean>;
                    }>;
                }>[]>>>;
                connections: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                    source: tbbox.TString;
                    target: tbbox.TString;
                    config: tbbox.TObject<{
                        condition: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{
                            type: tbbox.TLiteral<"success">;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"error">;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"matches">;
                            path: tbbox.TString;
                            value: tbbox.TString;
                        }>]>>;
                        max_retries: tbbox.TOptional<tbbox.TNumber>;
                    }>;
                }>>>;
                start_task: tbbox.TOptional<tbbox.TString>;
                responding_task: tbbox.TOptional<tbbox.TString>;
            }>>;
        }>;
        media: tbbox.TObject<{
            enabled: tbbox.TBoolean;
            basepath: tbbox.TString;
            entity_name: tbbox.TString;
            storage: tbbox.TObject<{
                body_max_size: tbbox.TOptional<tbbox.TNumber>;
            }>;
            adapter: tbbox.TOptional<tbbox.TUnion<tbbox.TObject<{
                type: tbbox.TLiteral<string>;
                config: tbbox.TObject<tbbox.TProperties>;
            }>[]>>;
        }> | tbbox.TObject<{
            enabled: tbbox.TBoolean;
            basepath: tbbox.TString;
            entity_name: tbbox.TString;
            allow_register: tbbox.TOptional<tbbox.TBoolean>;
            jwt: tbbox.TObject<{
                secret: tbbox.TString;
                alg: tbbox.TOptional<tbbox.TUnsafe<"HS256" | "HS384" | "HS512">>;
                expires: tbbox.TOptional<tbbox.TNumber>;
                issuer: tbbox.TOptional<tbbox.TString>;
                fields: tbbox.TArray<tbbox.TString>;
            }>;
            cookie: tbbox.TObject<{
                path: tbbox.TOptional<tbbox.TString>;
                sameSite: tbbox.TOptional<tbbox.TUnsafe<"strict" | "lax" | "none">>;
                secure: tbbox.TOptional<tbbox.TBoolean>;
                httpOnly: tbbox.TOptional<tbbox.TBoolean>;
                expires: tbbox.TOptional<tbbox.TNumber>;
                renew: tbbox.TOptional<tbbox.TBoolean>;
                pathSuccess: tbbox.TOptional<tbbox.TString>;
                pathLoggedOut: tbbox.TOptional<tbbox.TString>;
            }>;
            strategies: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                enabled: tbbox.TOptional<tbbox.TBoolean>;
                type: tbbox.TLiteral<"password"> | tbbox.TLiteral<"oauth"> | tbbox.TLiteral<"custom_oauth">;
                config: tbbox.TObject<{
                    hashing: tbbox.TUnsafe<"plain" | "sha256" | "bcrypt">;
                    rounds: tbbox.TOptional<tbbox.TNumber>;
                }> | tbbox.TObject<{
                    name: tbbox.TUnsafe<"google" | "github">;
                    type: tbbox.TUnsafe<"oidc" | "oauth2">;
                    client: tbbox.TObject<{
                        client_id: tbbox.TString;
                        client_secret: tbbox.TString;
                    }>;
                }> | tbbox.TObject<{
                    type: tbbox.TUnsafe<"oidc" | "oauth2">;
                    name: tbbox.TString;
                    client: tbbox.TObject<{
                        client_id: tbbox.TString;
                        client_secret: tbbox.TString;
                        token_endpoint_auth_method: tbbox.TUnsafe<"client_secret_basic">;
                    }>;
                    as: tbbox.TObject<{
                        issuer: tbbox.TString;
                        code_challenge_methods_supported: tbbox.TOptional<tbbox.TUnsafe<"S256">>;
                        scopes_supported: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                        scope_separator: tbbox.TOptional<tbbox.TString>;
                        authorization_endpoint: tbbox.TOptional<tbbox.TString>;
                        token_endpoint: tbbox.TOptional<tbbox.TString>;
                        userinfo_endpoint: tbbox.TOptional<tbbox.TString>;
                    }>;
                }>;
            }>[]>>>;
            guard: tbbox.TOptional<tbbox.TObject<{
                enabled: tbbox.TOptional<tbbox.TBoolean>;
            }>>;
            roles: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                permissions: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                is_default: tbbox.TOptional<tbbox.TBoolean>;
                implicit_allow: tbbox.TOptional<tbbox.TBoolean>;
            }>>>;
        }> | tbbox.TObject<{
            cors: tbbox.TObject<{
                origin: tbbox.TString;
                allow_methods: tbbox.TArray<tbbox.TUnsafe<string>>;
                allow_headers: tbbox.TArray<tbbox.TString>;
            }>;
        }> | tbbox.TObject<{
            basepath: tbbox.TOptional<tbbox.TString>;
            default_primary_format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
            entities: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                type: tbbox.TOptional<tbbox.TString>;
                config: tbbox.TOptional<tbbox.TObject<{
                    name: tbbox.TOptional<tbbox.TString>;
                    name_singular: tbbox.TOptional<tbbox.TString>;
                    description: tbbox.TOptional<tbbox.TString>;
                    sort_field: tbbox.TOptional<tbbox.TString>;
                    sort_dir: tbbox.TOptional<tbbox.TUnsafe<"asc" | "desc">>;
                    primary_format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
                }>>;
                fields: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"number"> | tbbox.TLiteral<"boolean"> | tbbox.TLiteral<"json"> | tbbox.TLiteral<"text"> | tbbox.TLiteral<"media"> | tbbox.TLiteral<"enum"> | tbbox.TLiteral<"date"> | tbbox.TLiteral<"primary"> | tbbox.TLiteral<"relation"> | tbbox.TLiteral<"jsonschema">;
                    config: tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>;
                        minLength: tbbox.TOptional<tbbox.TNumber>;
                        maxLength: tbbox.TOptional<tbbox.TNumber>;
                        pattern: tbbox.TOptional<tbbox.TString>;
                        html_config: tbbox.TOptional<tbbox.TObject<{
                            element: tbbox.TOptional<tbbox.TString>;
                            props: tbbox.TOptional<tbbox.TObject<{}>>;
                        }>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TBoolean, tbbox.TAny]>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TNumber, tbbox.TAny]>>;
                        minimum: tbbox.TOptional<tbbox.TNumber>;
                        maximum: tbbox.TOptional<tbbox.TNumber>;
                        exclusiveMinimum: tbbox.TOptional<tbbox.TNumber>;
                        exclusiveMaximum: tbbox.TOptional<tbbox.TNumber>;
                        multipleOf: tbbox.TOptional<tbbox.TNumber>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        type: tbbox.TUnsafe<"date" | "week" | "datetime">;
                        timezone: tbbox.TOptional<tbbox.TString>;
                        min_date: tbbox.TOptional<tbbox.TString>;
                        max_date: tbbox.TOptional<tbbox.TString>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                        reference: tbbox.TString;
                        target: tbbox.TString;
                        target_field: tbbox.TOptional<tbbox.TString>;
                        target_field_type: tbbox.TOptional<tbbox.TUnsafe<"text" | "integer">>;
                        on_delete: tbbox.TOptional<tbbox.TUnsafe<"no action" | "restrict" | "cascade" | "set null" | "set default">>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                        required: tbbox.TOptional<tbbox.TLiteral<false>>;
                        format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        entity: tbbox.TString;
                        min_items: tbbox.TOptional<tbbox.TNumber>;
                        max_items: tbbox.TOptional<tbbox.TNumber>;
                        mime_types: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>;
                        options: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{
                            type: tbbox.TLiteral<"strings">;
                            values: tbbox.TArray<tbbox.TString>;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"objects">;
                            values: tbbox.TArray<tbbox.TObject<{
                                label: tbbox.TString;
                                value: tbbox.TString;
                            }>>;
                        }>]>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        schema: tbbox.TObject<{}>;
                        ui_schema: tbbox.TOptional<tbbox.TObject<{}>>;
                        default_from_schema: tbbox.TOptional<tbbox.TBoolean>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>>;
                }>[]>>>;
            }>>>;
            relations: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                type: tbbox.TLiteral<string>;
                source: tbbox.TString;
                target: tbbox.TString;
                config: tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    connectionTable: tbbox.TOptional<tbbox.TString>;
                    connectionTableMappedName: tbbox.TOptional<tbbox.TString>;
                }>> | tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    sourceCardinality: tbbox.TOptional<tbbox.TNumber>;
                    with_limit: tbbox.TOptional<tbbox.TNumber>;
                    fieldConfig: tbbox.TOptional<tbbox.TObject<{
                        label: tbbox.TString;
                    }>>;
                }>> | tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    targetCardinality: tbbox.TOptional<tbbox.TNumber>;
                }>>;
            }>[]>>>;
            indices: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                entity: tbbox.TString;
                fields: tbbox.TArray<tbbox.TString>;
                unique: tbbox.TOptional<tbbox.TBoolean>;
            }>>>;
        }> | tbbox.TObject<{
            basepath: tbbox.TString;
            flows: tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                trigger: tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"manual" | "event" | "http">;
                    config: tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                    }> | tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                        event: tbbox.TString;
                    }> | tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                        path: tbbox.TString;
                        method: tbbox.TUnsafe<"GET" | "POST" | "PATCH" | "PUT" | "DELETE">;
                        response_type: tbbox.TUnsafe<"json" | "text" | "html">;
                    }>;
                }>[]>;
                tasks: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"log" | "fetch" | "render" | "subflow">;
                    params: tbbox.TObject<{
                        url: tbbox.TString;
                        method: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TUnsafe<string>, tbbox.TString]>, string>>;
                        headers: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TArray<tbbox.TObject<{
                            key: tbbox.TString;
                            value: tbbox.TString;
                        }>>, tbbox.TString]>, {
                            key: string;
                            value: string;
                        }[]>>;
                        body: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TString, tbbox.TString]>, string>>;
                        normal: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TNumber, tbbox.TString]>, number>>;
                    }> | tbbox.TObject<{
                        delay: tbbox.TNumber;
                    }> | tbbox.TObject<{
                        render: tbbox.TString;
                    }> | tbbox.TObject<{
                        flow: tbbox.TAny;
                        input: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TAny, tbbox.TString]>, any>>;
                        loop: tbbox.TOptional<tbbox.TBoolean>;
                    }>;
                }>[]>>>;
                connections: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                    source: tbbox.TString;
                    target: tbbox.TString;
                    config: tbbox.TObject<{
                        condition: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{
                            type: tbbox.TLiteral<"success">;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"error">;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"matches">;
                            path: tbbox.TString;
                            value: tbbox.TString;
                        }>]>>;
                        max_retries: tbbox.TOptional<tbbox.TNumber>;
                    }>;
                }>>>;
                start_task: tbbox.TOptional<tbbox.TString>;
                responding_task: tbbox.TOptional<tbbox.TString>;
            }>>;
        }>;
        flows: tbbox.TObject<{
            enabled: tbbox.TBoolean;
            basepath: tbbox.TString;
            entity_name: tbbox.TString;
            storage: tbbox.TObject<{
                body_max_size: tbbox.TOptional<tbbox.TNumber>;
            }>;
            adapter: tbbox.TOptional<tbbox.TUnion<tbbox.TObject<{
                type: tbbox.TLiteral<string>;
                config: tbbox.TObject<tbbox.TProperties>;
            }>[]>>;
        }> | tbbox.TObject<{
            enabled: tbbox.TBoolean;
            basepath: tbbox.TString;
            entity_name: tbbox.TString;
            allow_register: tbbox.TOptional<tbbox.TBoolean>;
            jwt: tbbox.TObject<{
                secret: tbbox.TString;
                alg: tbbox.TOptional<tbbox.TUnsafe<"HS256" | "HS384" | "HS512">>;
                expires: tbbox.TOptional<tbbox.TNumber>;
                issuer: tbbox.TOptional<tbbox.TString>;
                fields: tbbox.TArray<tbbox.TString>;
            }>;
            cookie: tbbox.TObject<{
                path: tbbox.TOptional<tbbox.TString>;
                sameSite: tbbox.TOptional<tbbox.TUnsafe<"strict" | "lax" | "none">>;
                secure: tbbox.TOptional<tbbox.TBoolean>;
                httpOnly: tbbox.TOptional<tbbox.TBoolean>;
                expires: tbbox.TOptional<tbbox.TNumber>;
                renew: tbbox.TOptional<tbbox.TBoolean>;
                pathSuccess: tbbox.TOptional<tbbox.TString>;
                pathLoggedOut: tbbox.TOptional<tbbox.TString>;
            }>;
            strategies: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                enabled: tbbox.TOptional<tbbox.TBoolean>;
                type: tbbox.TLiteral<"password"> | tbbox.TLiteral<"oauth"> | tbbox.TLiteral<"custom_oauth">;
                config: tbbox.TObject<{
                    hashing: tbbox.TUnsafe<"plain" | "sha256" | "bcrypt">;
                    rounds: tbbox.TOptional<tbbox.TNumber>;
                }> | tbbox.TObject<{
                    name: tbbox.TUnsafe<"google" | "github">;
                    type: tbbox.TUnsafe<"oidc" | "oauth2">;
                    client: tbbox.TObject<{
                        client_id: tbbox.TString;
                        client_secret: tbbox.TString;
                    }>;
                }> | tbbox.TObject<{
                    type: tbbox.TUnsafe<"oidc" | "oauth2">;
                    name: tbbox.TString;
                    client: tbbox.TObject<{
                        client_id: tbbox.TString;
                        client_secret: tbbox.TString;
                        token_endpoint_auth_method: tbbox.TUnsafe<"client_secret_basic">;
                    }>;
                    as: tbbox.TObject<{
                        issuer: tbbox.TString;
                        code_challenge_methods_supported: tbbox.TOptional<tbbox.TUnsafe<"S256">>;
                        scopes_supported: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                        scope_separator: tbbox.TOptional<tbbox.TString>;
                        authorization_endpoint: tbbox.TOptional<tbbox.TString>;
                        token_endpoint: tbbox.TOptional<tbbox.TString>;
                        userinfo_endpoint: tbbox.TOptional<tbbox.TString>;
                    }>;
                }>;
            }>[]>>>;
            guard: tbbox.TOptional<tbbox.TObject<{
                enabled: tbbox.TOptional<tbbox.TBoolean>;
            }>>;
            roles: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                permissions: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                is_default: tbbox.TOptional<tbbox.TBoolean>;
                implicit_allow: tbbox.TOptional<tbbox.TBoolean>;
            }>>>;
        }> | tbbox.TObject<{
            cors: tbbox.TObject<{
                origin: tbbox.TString;
                allow_methods: tbbox.TArray<tbbox.TUnsafe<string>>;
                allow_headers: tbbox.TArray<tbbox.TString>;
            }>;
        }> | tbbox.TObject<{
            basepath: tbbox.TOptional<tbbox.TString>;
            default_primary_format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
            entities: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                type: tbbox.TOptional<tbbox.TString>;
                config: tbbox.TOptional<tbbox.TObject<{
                    name: tbbox.TOptional<tbbox.TString>;
                    name_singular: tbbox.TOptional<tbbox.TString>;
                    description: tbbox.TOptional<tbbox.TString>;
                    sort_field: tbbox.TOptional<tbbox.TString>;
                    sort_dir: tbbox.TOptional<tbbox.TUnsafe<"asc" | "desc">>;
                    primary_format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
                }>>;
                fields: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"number"> | tbbox.TLiteral<"boolean"> | tbbox.TLiteral<"json"> | tbbox.TLiteral<"text"> | tbbox.TLiteral<"media"> | tbbox.TLiteral<"enum"> | tbbox.TLiteral<"date"> | tbbox.TLiteral<"primary"> | tbbox.TLiteral<"relation"> | tbbox.TLiteral<"jsonschema">;
                    config: tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>;
                        minLength: tbbox.TOptional<tbbox.TNumber>;
                        maxLength: tbbox.TOptional<tbbox.TNumber>;
                        pattern: tbbox.TOptional<tbbox.TString>;
                        html_config: tbbox.TOptional<tbbox.TObject<{
                            element: tbbox.TOptional<tbbox.TString>;
                            props: tbbox.TOptional<tbbox.TObject<{}>>;
                        }>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TBoolean, tbbox.TAny]>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TNumber, tbbox.TAny]>>;
                        minimum: tbbox.TOptional<tbbox.TNumber>;
                        maximum: tbbox.TOptional<tbbox.TNumber>;
                        exclusiveMinimum: tbbox.TOptional<tbbox.TNumber>;
                        exclusiveMaximum: tbbox.TOptional<tbbox.TNumber>;
                        multipleOf: tbbox.TOptional<tbbox.TNumber>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        type: tbbox.TUnsafe<"date" | "week" | "datetime">;
                        timezone: tbbox.TOptional<tbbox.TString>;
                        min_date: tbbox.TOptional<tbbox.TString>;
                        max_date: tbbox.TOptional<tbbox.TString>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                        reference: tbbox.TString;
                        target: tbbox.TString;
                        target_field: tbbox.TOptional<tbbox.TString>;
                        target_field_type: tbbox.TOptional<tbbox.TUnsafe<"text" | "integer">>;
                        on_delete: tbbox.TOptional<tbbox.TUnsafe<"no action" | "restrict" | "cascade" | "set null" | "set default">>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                        required: tbbox.TOptional<tbbox.TLiteral<false>>;
                        format: tbbox.TOptional<tbbox.TUnsafe<"uuid" | "integer">>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        entity: tbbox.TString;
                        min_items: tbbox.TOptional<tbbox.TNumber>;
                        max_items: tbbox.TOptional<tbbox.TNumber>;
                        mime_types: tbbox.TOptional<tbbox.TArray<tbbox.TString>>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        default_value: tbbox.TOptional<tbbox.TIntersect<[tbbox.TString, tbbox.TAny]>>;
                        options: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{
                            type: tbbox.TLiteral<"strings">;
                            values: tbbox.TArray<tbbox.TString>;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"objects">;
                            values: tbbox.TArray<tbbox.TObject<{
                                label: tbbox.TString;
                                value: tbbox.TString;
                            }>>;
                        }>]>>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>> | tbbox.TOptional<tbbox.TObject<{
                        schema: tbbox.TObject<{}>;
                        ui_schema: tbbox.TOptional<tbbox.TObject<{}>>;
                        default_from_schema: tbbox.TOptional<tbbox.TBoolean>;
                        default_value: tbbox.TOptional<tbbox.TAny>;
                        required: tbbox.TOptional<tbbox.TBoolean>;
                        description: tbbox.TOptional<tbbox.TString>;
                        label: tbbox.TOptional<tbbox.TString>;
                        fillable: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                        hidden: tbbox.TOptional<tbbox.TUnion<[tbbox.TBoolean, tbbox.TArray<tbbox.TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                        virtual: tbbox.TOptional<tbbox.TBoolean>;
                    }>>;
                }>[]>>>;
            }>>>;
            relations: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                type: tbbox.TLiteral<string>;
                source: tbbox.TString;
                target: tbbox.TString;
                config: tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    connectionTable: tbbox.TOptional<tbbox.TString>;
                    connectionTableMappedName: tbbox.TOptional<tbbox.TString>;
                }>> | tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    sourceCardinality: tbbox.TOptional<tbbox.TNumber>;
                    with_limit: tbbox.TOptional<tbbox.TNumber>;
                    fieldConfig: tbbox.TOptional<tbbox.TObject<{
                        label: tbbox.TString;
                    }>>;
                }>> | tbbox.TOptional<tbbox.TObject<{
                    required: tbbox.TOptional<tbbox.TBoolean>;
                    mappedBy: tbbox.TOptional<tbbox.TString>;
                    inversedBy: tbbox.TOptional<tbbox.TString>;
                    targetCardinality: tbbox.TOptional<tbbox.TNumber>;
                }>>;
            }>[]>>>;
            indices: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                entity: tbbox.TString;
                fields: tbbox.TArray<tbbox.TString>;
                unique: tbbox.TOptional<tbbox.TBoolean>;
            }>>>;
        }> | tbbox.TObject<{
            basepath: tbbox.TString;
            flows: tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                trigger: tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"manual" | "event" | "http">;
                    config: tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                    }> | tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                        event: tbbox.TString;
                    }> | tbbox.TObject<{
                        mode: tbbox.TUnsafe<"sync" | "async">;
                        path: tbbox.TString;
                        method: tbbox.TUnsafe<"GET" | "POST" | "PATCH" | "PUT" | "DELETE">;
                        response_type: tbbox.TUnsafe<"json" | "text" | "html">;
                    }>;
                }>[]>;
                tasks: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TUnion<tbbox.TObject<{
                    type: tbbox.TLiteral<"log" | "fetch" | "render" | "subflow">;
                    params: tbbox.TObject<{
                        url: tbbox.TString;
                        method: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TUnsafe<string>, tbbox.TString]>, string>>;
                        headers: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TArray<tbbox.TObject<{
                            key: tbbox.TString;
                            value: tbbox.TString;
                        }>>, tbbox.TString]>, {
                            key: string;
                            value: string;
                        }[]>>;
                        body: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TString, tbbox.TString]>, string>>;
                        normal: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TNumber, tbbox.TString]>, number>>;
                    }> | tbbox.TObject<{
                        delay: tbbox.TNumber;
                    }> | tbbox.TObject<{
                        render: tbbox.TString;
                    }> | tbbox.TObject<{
                        flow: tbbox.TAny;
                        input: tbbox.TOptional<tbbox.TTransform<tbbox.TUnion<[{
                            title: string;
                        } & tbbox.TAny, tbbox.TString]>, any>>;
                        loop: tbbox.TOptional<tbbox.TBoolean>;
                    }>;
                }>[]>>>;
                connections: tbbox.TOptional<tbbox.TRecord<tbbox.TString, tbbox.TObject<{
                    source: tbbox.TString;
                    target: tbbox.TString;
                    config: tbbox.TObject<{
                        condition: tbbox.TOptional<tbbox.TUnion<[tbbox.TObject<{
                            type: tbbox.TLiteral<"success">;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"error">;
                        }>, tbbox.TObject<{
                            type: tbbox.TLiteral<"matches">;
                            path: tbbox.TString;
                            value: tbbox.TString;
                        }>]>>;
                        max_retries: tbbox.TOptional<tbbox.TNumber>;
                    }>;
                }>>>;
                start_task: tbbox.TOptional<tbbox.TString>;
                responding_task: tbbox.TOptional<tbbox.TString>;
            }>>;
        }>;
        version: number;
    };
    toJSON(secrets?: boolean): {
        version: number;
    } & ModuleConfigs;
}
export declare function getDefaultSchema(): any;
export declare function getDefaultConfig(): ModuleConfigs;
