import type { Field } from '../fields/config/types.js';
import type { ClientConfig, SanitizedConfig } from './types.js';
export declare const sanitizeField: (f: Field) => {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        components?: {
            RowLabel?: import("../exports/types.js").RowLabel;
        } & {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        initCollapsed?: boolean;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    fields: Field[];
    interfaceName?: string;
    labels?: import("../exports/types.js").Labels;
    maxRows?: number;
    minRows?: number;
    type: "array";
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        initCollapsed?: boolean;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    blocks: import("../exports/types.js").Block[];
    labels?: import("../exports/types.js").Labels;
    maxRows?: number;
    minRows?: number;
    type: "blocks";
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
            afterInput?: import("react").ComponentType<any>[];
            beforeInput?: import("react").ComponentType<any>[];
        };
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    type: "checkbox";
} | {
    custom?: Record<string, any>;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    name: string;
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    defaultValue?: any;
    hidden?: boolean;
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
        };
        editorOptions?: import("monaco-editor").editor.IStandaloneEditorConstructionOptions;
        language?: string;
    };
    maxLength?: number;
    minLength?: number;
    type: "code";
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
            afterInput?: import("react").ComponentType<any>[];
            beforeInput?: import("react").ComponentType<any>[];
        };
        date?: import("../exports/types.js").ConditionalDateProps;
        placeholder?: string | Record<string, string>;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    type: "date";
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        autoComplete?: string;
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
            afterInput?: import("react").ComponentType<any>[];
            beforeInput?: import("react").ComponentType<any>[];
        };
        placeholder?: string | Record<string, string>;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    type: "email";
} | {
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        hideGutter?: boolean;
    };
    custom?: Record<string, any>;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    name: string;
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    defaultValue?: any;
    hidden?: boolean;
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    fields: Field[];
    interfaceName?: string;
    type: "group";
} | {
    custom?: Record<string, any>;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    name: string;
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    defaultValue?: any;
    hidden?: boolean;
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
        };
        editorOptions?: import("monaco-editor").editor.IStandaloneEditorConstructionOptions;
    };
    type: "json";
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        autoComplete?: string;
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
            afterInput?: import("react").ComponentType<any>[];
            beforeInput?: import("react").ComponentType<any>[];
        };
        placeholder?: string | Record<string, string>;
        step?: number;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    max?: number;
    min?: number;
    type: "number";
    hasMany: true;
    maxRows?: number;
    minRows?: number;
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        autoComplete?: string;
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
            afterInput?: import("react").ComponentType<any>[];
            beforeInput?: import("react").ComponentType<any>[];
        };
        placeholder?: string | Record<string, string>;
        step?: number;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    max?: number;
    min?: number;
    type: "number";
    hasMany?: false;
    maxRows?: undefined;
    minRows?: undefined;
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    type: "point";
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
        };
        layout?: "horizontal" | "vertical";
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    options: import("../exports/types.js").Option[];
    type: "radio";
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        allowCreate?: boolean;
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
        };
        isSortable?: boolean;
    } & {
        sortOptions?: {
            [collectionSlug: string]: string;
        };
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    filterOptions?: import("../exports/types.js").FilterOptions<any>;
    hasMany: true;
    maxDepth?: number;
    type: "relationship";
    max?: number;
    maxRows?: number;
    min?: number;
    minRows?: number;
    relationTo: string[];
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        allowCreate?: boolean;
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
        };
        isSortable?: boolean;
    } & {
        sortOptions?: {
            [collectionSlug: string]: string;
        };
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    filterOptions?: import("../exports/types.js").FilterOptions<any>;
    hasMany?: false;
    maxDepth?: number;
    type: "relationship";
    max?: undefined;
    maxRows?: undefined;
    min?: undefined;
    minRows?: undefined;
    relationTo: string[];
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        allowCreate?: boolean;
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
        };
        isSortable?: boolean;
    } & {
        sortOptions?: string;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    filterOptions?: import("../exports/types.js").FilterOptions<any>;
    hasMany: true;
    maxDepth?: number;
    type: "relationship";
    max?: number;
    maxRows?: number;
    min?: number;
    minRows?: number;
    relationTo: string;
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        allowCreate?: boolean;
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
        };
        isSortable?: boolean;
    } & {
        sortOptions?: string;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    filterOptions?: import("../exports/types.js").FilterOptions<any>;
    hasMany?: false;
    maxDepth?: number;
    type: "relationship";
    max?: undefined;
    maxRows?: undefined;
    min?: undefined;
    minRows?: undefined;
    relationTo: string;
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    editor?: import("../admin/RichText.js").RichTextAdapter<any, any, any>;
    type: "richText";
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
        };
        isClearable?: boolean;
        isSortable?: boolean;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    hasMany?: boolean;
    options: import("../exports/types.js").Option[];
    type: "select";
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        autoComplete?: string;
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
            afterInput?: import("react").ComponentType<any>[];
            beforeInput?: import("react").ComponentType<any>[];
        };
        placeholder?: string | Record<string, string>;
        rtl?: boolean;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    maxLength?: number;
    minLength?: number;
    type: "text";
    hasMany: true;
    maxRows?: number;
    minRows?: number;
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        autoComplete?: string;
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
            afterInput?: import("react").ComponentType<any>[];
            beforeInput?: import("react").ComponentType<any>[];
        };
        placeholder?: string | Record<string, string>;
        rtl?: boolean;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    maxLength?: number;
    minLength?: number;
    type: "text";
    hasMany?: false;
    maxRows?: undefined;
    minRows?: undefined;
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
            afterInput?: import("react").ComponentType<any>[];
            beforeInput?: import("react").ComponentType<any>[];
        };
        placeholder?: string | Record<string, string>;
        rows?: number;
        rtl?: boolean;
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    maxLength?: number;
    minLength?: number;
    type: "textarea";
} | {
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        components?: {
            Error?: import("react").ComponentType<import("../exports/types.js").ErrorProps>;
            Label?: import("react").ComponentType<import("../exports/types.js").LabelProps>;
        };
    };
    custom?: Record<string, any>;
    defaultValue?: any;
    hidden?: boolean;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    index?: boolean;
    label?: string | false | Record<string, string>;
    localized?: boolean;
    name: string;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    filterOptions?: import("../exports/types.js").FilterOptions<any>;
    maxDepth?: number;
    relationTo: string;
    type: "upload";
} | {
    admin?: {
        className?: string;
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field?: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        description?: import("../exports/types.js").Description;
        disableBulkEdit?: boolean;
        disabled?: boolean;
        hidden?: boolean;
        position?: "sidebar";
        readOnly?: boolean;
        style?: import("react").CSSProperties;
        width?: string;
    } & {
        initCollapsed?: boolean;
    };
    custom?: Record<string, any>;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    defaultValue?: any;
    hidden?: boolean;
    index?: boolean;
    localized?: boolean;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    fields: Field[];
    label: import("../exports/types.js").RowLabel;
    type: "collapsible";
} | {
    custom?: Record<string, any>;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    defaultValue?: any;
    hidden?: boolean;
    index?: boolean;
    localized?: boolean;
    required?: boolean;
    saveToJWT?: string | boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    admin?: import("../exports/types.js").RowAdmin;
    fields: Field[];
    type: "row";
} | {
    custom?: Record<string, any>;
    hooks?: {
        afterChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        afterRead?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeChange?: import("../exports/types.js").FieldHook<any, any, any>[];
        beforeValidate?: import("../exports/types.js").FieldHook<any, any, any>[];
    };
    access?: {
        create?: import("../exports/types.js").FieldAccess<any, any, any>;
        read?: import("../exports/types.js").FieldAccess<any, any, any>;
        update?: import("../exports/types.js").FieldAccess<any, any, any>;
    };
    defaultValue?: any;
    hidden?: boolean;
    index?: boolean;
    label?: string | false | Record<string, string>;
    required?: boolean;
    unique?: boolean;
    validate?: import("../exports/types.js").Validate<any, any, any, {}>;
    admin?: import("../exports/types.js").TabsAdmin;
    tabs: import("../exports/types.js").Tab[];
    type: "tabs";
} | {
    admin: {
        components?: {
            Cell?: import("react").ComponentType<any>;
            Field: import("react").ComponentType<any>;
            Filter?: import("react").ComponentType<any>;
        };
        condition?: import("../exports/types.js").Condition<any, any>;
        disableBulkEdit?: boolean;
        position?: string;
        width?: string;
    };
    custom?: Record<string, any>;
    label?: string | Record<string, string>;
    name: string;
    type: "ui";
};
export declare const sanitizeFields: (fields: Field[]) => Field[];
export declare const createClientConfig: (configPromise: Promise<SanitizedConfig> | SanitizedConfig) => Promise<ClientConfig>;
//# sourceMappingURL=createClientConfig.d.ts.map