import { ColorInputProps } from '@components/inputs/ColorInput';
import { DateInputProps, DateInputType } from '@components/inputs/DateInput/DateInput';
import { GalleryPickerProps } from '@components/inputs/GalleryInput/GalleryInput';
import { ImageInputProps } from '@components/inputs/Image/ImageInput';
import { SelectInputProps } from '@components/inputs/SelectInput';
import { TextInputProps } from '@components/inputs/TextInput/TextInput';
import { EDBEntity, TAdminCustomField, TBasePageEntity, TCustomFieldSimpleTextType } from '@cromwell/core';
import { CheckboxProps } from '@mui/material';
import React from 'react';
export declare const getCustomField: (settings: {
    id: string;
    key?: string;
    label?: string;
    component?: React.ComponentType<{
        value: any;
        onChange: (value: any) => void;
        entity: TBasePageEntity;
        canValidate?: boolean;
        error?: boolean;
    }>;
    saveData?: () => any | Promise<any>;
}) => {
    component: import("./types").TFieldDefaultComponent;
    saveData: () => string | Promise<string>;
    value?: any;
};
export declare const getSimpleTextField: (settings: {
    id: string;
    key?: string;
    label?: string;
    props?: TextInputProps;
    simpleTextType?: TCustomFieldSimpleTextType;
}) => {
    component: import("./types").TFieldDefaultComponent;
    saveData: () => string | Promise<string>;
    value?: any;
};
export declare const registerSimpleTextCustomField: (settings: {
    entityType: EDBEntity | string;
    key: string;
    label?: string;
    props?: TextInputProps;
    simpleTextType?: TCustomFieldSimpleTextType;
}) => void;
export declare const getTextEditorField: (settings: {
    id: string;
    label?: string;
    props?: TextInputProps;
}) => {
    component: import("./types").TFieldDefaultComponent;
    saveData: () => string | Promise<string>;
    value?: any;
};
export declare const registerTextEditorCustomField: (settings: {
    entityType: EDBEntity | string;
    key: string;
    label?: string;
    props?: TextInputProps;
}) => void;
export declare const getSelectField: (settings: {
    id: string;
    label?: string;
    props?: SelectInputProps;
    options?: ({
        value: string | number | undefined;
        label: string;
    } | string | number | undefined)[];
}) => {
    component: import("./types").TFieldDefaultComponent;
    saveData: () => string | Promise<string>;
    value?: any;
};
export declare const registerSelectCustomField: (settings: {
    entityType: EDBEntity | string;
    key: string;
    label?: string;
    options?: ({
        value: string | number | undefined;
        label: string;
    } | string | number | undefined)[];
    props?: SelectInputProps;
}) => void;
export declare const getImageField: (settings: {
    id: string;
    label?: string;
    props?: ImageInputProps;
}) => {
    component: import("./types").TFieldDefaultComponent;
    saveData: () => string | Promise<string>;
    value?: any;
};
export declare const registerImageCustomField: (settings: {
    entityType: EDBEntity | string;
    key: string;
    label?: string;
    props?: ImageInputProps;
}) => void;
export declare const getGalleryField: (settings: {
    id: string;
    label?: string;
    props?: GalleryPickerProps;
}) => {
    component: import("./types").TFieldDefaultComponent;
    saveData: () => string | Promise<string>;
    value?: any;
};
export declare const registerGalleryCustomField: (settings: {
    entityType: EDBEntity | string;
    key: string;
    label?: string;
    props?: GalleryPickerProps;
}) => void;
export declare const getColorField: (settings: {
    id: string;
    label?: string;
    props?: ColorInputProps;
}) => {
    component: import("./types").TFieldDefaultComponent;
    saveData: () => string | Promise<string>;
    value?: any;
};
export declare const registerColorCustomField: (settings: {
    entityType: EDBEntity | string;
    key: string;
    label?: string;
    props?: ColorInputProps;
}) => void;
export declare const getCheckboxField: (settings: {
    id: string;
    label?: string;
    props?: CheckboxProps;
}) => {
    component: import("./types").TFieldDefaultComponent;
    saveData: () => string | Promise<string>;
    value?: any;
};
export declare const registerCheckboxCustomField: (settings: {
    entityType: EDBEntity | string;
    key: string;
    label?: string;
    props?: CheckboxProps;
}) => void;
export declare const getDatepickerField: (settings: {
    id: string;
    label?: string;
    props?: DateInputProps;
    dateType?: DateInputType;
}) => {
    component: import("./types").TFieldDefaultComponent;
    saveData: () => string | Promise<string>;
    value?: any;
};
export declare const registerDatepickerCustomField: (settings: {
    entityType: EDBEntity | string;
    key: string;
    label?: string;
    props?: DateInputProps;
    dateType?: DateInputType;
}) => void;
export declare const registerCustomFieldOfType: (field: TAdminCustomField) => void;
