import { type EntityManager } from "../data";
import { Module } from "../modules/Module";
import { type AppDataConfig, dataConfigSchema } from "./data-schema";
export declare class AppData extends Module<typeof dataConfigSchema> {
    build(): Promise<void>;
    onBeforeUpdate(from: AppDataConfig, to: AppDataConfig): Promise<AppDataConfig>;
    getSchema(): import("@sinclair/typebox").TObject<{
        basepath: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
        default_primary_format: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"uuid" | "integer">>;
        entities: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                name_singular: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                sort_field: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                sort_dir: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"asc" | "desc">>;
                primary_format: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"uuid" | "integer">>;
            }>>;
            fields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TObject<{
                type: import("@sinclair/typebox").TLiteral<"number"> | import("@sinclair/typebox").TLiteral<"boolean"> | import("@sinclair/typebox").TLiteral<"json"> | import("@sinclair/typebox").TLiteral<"text"> | import("@sinclair/typebox").TLiteral<"media"> | import("@sinclair/typebox").TLiteral<"enum"> | import("@sinclair/typebox").TLiteral<"date"> | import("@sinclair/typebox").TLiteral<"primary"> | import("@sinclair/typebox").TLiteral<"relation"> | import("@sinclair/typebox").TLiteral<"jsonschema">;
                config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                    default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny]>>;
                    minLength: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
                    maxLength: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
                    pattern: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    html_config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                        element: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                        props: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
                    }>>;
                    required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                    hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                    virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                }>> | import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                    default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TAny]>>;
                    required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                    hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                    virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                }>> | import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                    default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TAny]>>;
                    minimum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
                    maximum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
                    exclusiveMinimum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
                    exclusiveMaximum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
                    multipleOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
                    required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                    hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                    virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                }>> | import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                    type: import("@sinclair/typebox").TUnsafe<"date" | "week" | "datetime">;
                    timezone: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    min_date: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    max_date: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
                    required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                    hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                    virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                }>> | import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                    default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
                    required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                    hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                    virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                }>> | import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                    default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
                    required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                    hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                    virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    reference: import("@sinclair/typebox").TString;
                    target: import("@sinclair/typebox").TString;
                    target_field: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    target_field_type: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"text" | "integer">>;
                    on_delete: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"no action" | "restrict" | "cascade" | "set null" | "set default">>;
                }>> | import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                    default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
                    description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                    hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                    virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<false>>;
                    format: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"uuid" | "integer">>;
                }>> | import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                    entity: import("@sinclair/typebox").TString;
                    min_items: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
                    max_items: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
                    mime_types: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
                    default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
                    required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                    hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                    virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                }>> | import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                    default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny]>>;
                    options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
                        type: import("@sinclair/typebox").TLiteral<"strings">;
                        values: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
                    }>, import("@sinclair/typebox").TObject<{
                        type: import("@sinclair/typebox").TLiteral<"objects">;
                        values: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
                            label: import("@sinclair/typebox").TString;
                            value: import("@sinclair/typebox").TString;
                        }>>;
                    }>]>>;
                    required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                    hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                    virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                }>> | import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                    schema: import("@sinclair/typebox").TObject<{}>;
                    ui_schema: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
                    default_from_schema: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
                    required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                    description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                    fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
                    hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
                    virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                }>>;
            }>[]>>>;
        }>>>;
        relations: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TUnion<import("@sinclair/typebox").TObject<{
            type: import("@sinclair/typebox").TLiteral<string>;
            source: import("@sinclair/typebox").TString;
            target: import("@sinclair/typebox").TString;
            config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                mappedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                inversedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                connectionTable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                connectionTableMappedName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            }>> | import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                mappedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                inversedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                sourceCardinality: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
                with_limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
                fieldConfig: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                    label: import("@sinclair/typebox").TString;
                }>>;
            }>> | import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                mappedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                inversedBy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                targetCardinality: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
            }>>;
        }>[]>>>;
        indices: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            entity: import("@sinclair/typebox").TString;
            fields: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
            unique: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>>>;
    }>;
    get em(): EntityManager;
    private get basepath();
    getOverwritePaths(): RegExp[];
    toJSON(secrets?: boolean): AppDataConfig;
}
