import type { ConfigUpdateResponse } from "../modules/server/SystemController";
import { ModuleApi } from "./ModuleApi";
import type { ModuleConfigs, ModuleKey, ModuleSchemas } from "./ModuleManager";
export type ApiSchemaResponse = {
    version: number;
    schema: ModuleSchemas;
    config: ModuleConfigs;
    permissions: string[];
};
export declare class SystemApi extends ModuleApi<any> {
    protected getDefaultOptions(): Partial<any>;
    readConfig(): import("./ModuleApi").FetchPromise<import("./ModuleApi").ResponseObject<{
        version: number;
    } & ModuleConfigs, {
        basepath?: string | undefined;
        indices?: {
            [x: string]: {
                unique?: boolean | undefined;
                fields: string[];
                entity: string;
            };
        } | undefined;
        default_primary_format?: "uuid" | "integer" | undefined;
        entities?: {
            [x: string]: {
                type?: string | undefined;
                config?: {
                    description?: string | undefined;
                    name?: string | undefined;
                    name_singular?: string | undefined;
                    sort_field?: string | undefined;
                    sort_dir?: "asc" | "desc" | undefined;
                    primary_format?: "uuid" | "integer" | undefined;
                } | undefined;
                fields?: {
                    [x: string]: {
                        config?: {
                            required?: boolean | undefined;
                            description?: string | undefined;
                            default_value?: any;
                            minLength?: number | undefined;
                            maxLength?: number | undefined;
                            pattern?: string | undefined;
                            html_config?: {
                                element?: string | undefined;
                                props?: {} | undefined;
                            } | undefined;
                            label?: string | undefined;
                            fillable?: boolean | ("create" | "read" | "update" | "delete")[] | undefined;
                            hidden?: boolean | ("form" | "table" | "create" | "read" | "update" | "delete" | "submit")[] | undefined;
                            virtual?: boolean | undefined;
                        } | {
                            required?: boolean | undefined;
                            description?: string | undefined;
                            default_value?: any;
                            label?: string | undefined;
                            fillable?: boolean | ("create" | "read" | "update" | "delete")[] | undefined;
                            hidden?: boolean | ("form" | "table" | "create" | "read" | "update" | "delete" | "submit")[] | undefined;
                            virtual?: boolean | undefined;
                        } | {
                            required?: boolean | undefined;
                            description?: string | undefined;
                            default_value?: any;
                            label?: string | undefined;
                            fillable?: boolean | ("create" | "read" | "update" | "delete")[] | undefined;
                            hidden?: boolean | ("form" | "table" | "create" | "read" | "update" | "delete" | "submit")[] | undefined;
                            virtual?: boolean | undefined;
                            minimum?: number | undefined;
                            maximum?: number | undefined;
                            exclusiveMinimum?: number | undefined;
                            exclusiveMaximum?: number | undefined;
                            multipleOf?: number | undefined;
                        } | {
                            required?: boolean | undefined;
                            description?: string | undefined;
                            default_value?: any;
                            label?: string | undefined;
                            fillable?: boolean | ("create" | "read" | "update" | "delete")[] | undefined;
                            hidden?: boolean | ("form" | "table" | "create" | "read" | "update" | "delete" | "submit")[] | undefined;
                            virtual?: boolean | undefined;
                            timezone?: string | undefined;
                            min_date?: string | undefined;
                            max_date?: string | undefined;
                            type: "date" | "week" | "datetime";
                        } | {
                            required?: boolean | undefined;
                            description?: string | undefined;
                            default_value?: any;
                            label?: string | undefined;
                            fillable?: boolean | ("create" | "read" | "update" | "delete")[] | undefined;
                            hidden?: boolean | ("form" | "table" | "create" | "read" | "update" | "delete" | "submit")[] | undefined;
                            virtual?: boolean | undefined;
                        } | {
                            required?: boolean | undefined;
                            description?: string | undefined;
                            default_value?: any;
                            label?: string | undefined;
                            fillable?: boolean | ("create" | "read" | "update" | "delete")[] | undefined;
                            hidden?: boolean | ("form" | "table" | "create" | "read" | "update" | "delete" | "submit")[] | undefined;
                            virtual?: boolean | undefined;
                            target_field?: string | undefined;
                            target_field_type?: "text" | "integer" | undefined;
                            on_delete?: "no action" | "restrict" | "cascade" | "set null" | "set default" | undefined;
                            reference: string;
                            target: string;
                        } | {
                            required?: false | undefined;
                            description?: string | undefined;
                            default_value?: any;
                            label?: string | undefined;
                            fillable?: boolean | ("create" | "read" | "update" | "delete")[] | undefined;
                            hidden?: boolean | ("form" | "table" | "create" | "read" | "update" | "delete" | "submit")[] | undefined;
                            virtual?: boolean | undefined;
                            format?: "uuid" | "integer" | undefined;
                        } | {
                            required?: boolean | undefined;
                            description?: string | undefined;
                            default_value?: any;
                            label?: string | undefined;
                            fillable?: boolean | ("create" | "read" | "update" | "delete")[] | undefined;
                            hidden?: boolean | ("form" | "table" | "create" | "read" | "update" | "delete" | "submit")[] | undefined;
                            virtual?: boolean | undefined;
                            min_items?: number | undefined;
                            max_items?: number | undefined;
                            mime_types?: string[] | undefined;
                            entity: string;
                        } | {
                            required?: boolean | undefined;
                            description?: string | undefined;
                            default_value?: any;
                            label?: string | undefined;
                            fillable?: boolean | ("create" | "read" | "update" | "delete")[] | undefined;
                            hidden?: boolean | ("form" | "table" | "create" | "read" | "update" | "delete" | "submit")[] | undefined;
                            virtual?: boolean | undefined;
                            options?: {
                                type: "strings";
                                values: string[];
                            } | {
                                type: "objects";
                                values: {
                                    label: string;
                                    value: string;
                                }[];
                            } | undefined;
                        } | {
                            required?: boolean | undefined;
                            description?: string | undefined;
                            default_value?: any;
                            label?: string | undefined;
                            fillable?: boolean | ("create" | "read" | "update" | "delete")[] | undefined;
                            hidden?: boolean | ("form" | "table" | "create" | "read" | "update" | "delete" | "submit")[] | undefined;
                            virtual?: boolean | undefined;
                            ui_schema?: {} | undefined;
                            default_from_schema?: boolean | undefined;
                            schema: {};
                        } | undefined;
                        type: "number" | "boolean" | "json" | "text" | "media" | "enum" | "date" | "primary" | "relation" | "jsonschema";
                    };
                } | undefined;
            };
        } | undefined;
        relations?: {
            [x: string]: {
                config?: {
                    required?: boolean | undefined;
                    mappedBy?: string | undefined;
                    inversedBy?: string | undefined;
                    connectionTable?: string | undefined;
                    connectionTableMappedName?: string | undefined;
                } | {
                    required?: boolean | undefined;
                    mappedBy?: string | undefined;
                    inversedBy?: string | undefined;
                    sourceCardinality?: number | undefined;
                    with_limit?: number | undefined;
                    fieldConfig?: {
                        label: string;
                    } | undefined;
                } | {
                    required?: boolean | undefined;
                    mappedBy?: string | undefined;
                    inversedBy?: string | undefined;
                    targetCardinality?: number | undefined;
                } | undefined;
                type: string;
                source: string;
                target: string;
            };
        } | undefined;
    }>>;
    readSchema(options?: {
        config?: boolean;
        secrets?: boolean;
        fresh?: boolean;
    }): import("./ModuleApi").FetchPromise<import("./ModuleApi").ResponseObject<ApiSchemaResponse, ApiSchemaResponse>>;
    setConfig<Module extends ModuleKey>(module: Module, value: ModuleConfigs[Module], force?: boolean): import("./ModuleApi").FetchPromise<import("./ModuleApi").ResponseObject<ConfigUpdateResponse, ConfigUpdateResponse>>;
    addConfig<Module extends ModuleKey>(module: Module, path: string, value: any): import("./ModuleApi").FetchPromise<import("./ModuleApi").ResponseObject<ConfigUpdateResponse, ConfigUpdateResponse>>;
    patchConfig<Module extends ModuleKey>(module: Module, path: string, value: any): import("./ModuleApi").FetchPromise<import("./ModuleApi").ResponseObject<ConfigUpdateResponse, ConfigUpdateResponse>>;
    overwriteConfig<Module extends ModuleKey>(module: Module, path: string, value: any): import("./ModuleApi").FetchPromise<import("./ModuleApi").ResponseObject<ConfigUpdateResponse, ConfigUpdateResponse>>;
    removeConfig<Module extends ModuleKey>(module: Module, path: string): import("./ModuleApi").FetchPromise<import("./ModuleApi").ResponseObject<ConfigUpdateResponse, ConfigUpdateResponse>>;
}
