import { LocalizeController } from '../../../utils/src/custom-element/i18n';
import { STYLE_CONTROL } from './content-builder-constants';

export default class StyleController {
    private readonly localize;
    constructor(localize: LocalizeController);
    getStyleControl(style: keyof typeof STYLE_CONTROL): {
        options?: import('../../../types/src/content-builder').Option[];
        /**
         * Translation for label based on style name
         */
        label: string;
        target?: import('grapesjs').Component | undefined;
        name?: string | undefined;
        value?: any;
        id: string;
        unit?: string | undefined;
        attributes?: Record<string, any> | undefined;
        default?: any;
        max?: number | undefined;
        min?: number | undefined;
        text?: string | undefined;
        placeholder?: string;
        category?: (string | import('grapesjs').BlockCategoryProperties) | undefined;
        command?: string | ((editor: import('grapesjs').Editor, trait: import('grapesjs').Trait) => any) | undefined;
        step?: number | undefined;
        changeProp?: boolean | undefined;
        getValue?: ((props: {
            editor: import('grapesjs').Editor;
            trait: import('grapesjs').Trait;
            component: import('grapesjs').Component;
        }) => any) | undefined;
        setValue?: ((props: {
            value: any;
            editor: import('grapesjs').Editor;
            trait: import('grapesjs').Trait;
            component: import('grapesjs').Component;
            partial: boolean;
            options: import('grapesjs').TraitSetValueOptions;
            emitUpdate: () => void;
        }) => void) | undefined;
        valueTrue?: string | undefined;
        valueFalse?: string | undefined;
        labelButton?: string | undefined;
        full?: boolean | undefined;
        accept?: string;
        api?: () => Promise<import('../../../types/src/content-builder').Option[]> | import('../../../types/src/folder-select').FolderSelectApi;
        assetTransformationConfigs?: {
            assetIdKey?: string;
            defaultFormat?: string;
            dialogLabel?: string;
            formatKey?: string;
            multiple?: boolean;
            noCrop?: boolean;
            noResize?: boolean;
            noRotate?: boolean;
            recordsKey?: string;
            srcKey?: string;
        };
        callback?: ((params: {
            extraValue?: Record<string, unknown>;
            record: Record<string, any>;
            value: unknown;
        }) => Record<string, any>) | undefined;
        checkedValue?: string | boolean;
        children?: import('../../../types/src/content-builder').PropertyConfig[];
        clearable?: boolean;
        controlType: "asset-transformation" | "bicolor-picker" | "border-input-group" | "button-group" | "checkbox" | "checkbox-group" | "color-swatch-picker" | "corner-position-input-group" | "download-format-picker" | "file" | "folder-picker" | "gallery-picker" | "group" | "group-heading" | "icon-picker" | "image-picker" | "input" | "list-editor" | "all-picker" | "other-picker" | "padding-input-group" | "page-picker" | "placeholder" | "position-picker" | "radio-card-group" | "radio-group" | "select" | "shadow-input-group" | "size-input-group" | "switch" | "table" | "text" | "video-format-picker" | "video-picker";
        cornerStyleKey?: {
            offsetX: string;
            offsetY: string;
        };
        direction?: "horizontal" | "vertical";
        disabled?: boolean | ((record: Record<string, unknown>) => boolean);
        disabledTooltip?: string;
        downloadFormatPickerConfigs?: {
            assetIdsKey?: string;
            isObjectFormat?: boolean;
            objectIdKey?: string;
        };
        folderPickerConfigs?: {
            useFullPath: boolean;
        };
        galleryPickerConfigs?: {
            dialog: import('../../../types/src/content-builder').DialogType;
            formatKey?: string;
            transformationRecordIdKey?: string;
            transformationsKey?: string;
        };
        groupConfigs?: {
            columnGap?: string;
            direction?: "horizontal" | "vertical";
            gap?: string;
            rowGap?: string;
            wrap?: "nowrap" | "wrap" | "wrap-reverse";
        };
        helpText?: string | ((record: Record<string, unknown>) => string);
        inputConfigs?: {
            label?: string;
            suffix?: {
                options: import('../../../types/src/content-builder').Option[];
                type: "unit";
            };
            validation?: (record: Record<string, unknown>) => string;
        };
        itemsPerRow?: number;
        listEditorConfigs?: {
            addDialogLabel: string;
            addItemText?: string;
            columns: Array<Record<string, unknown>>;
            displayField?: string;
            editDialogLabel: string;
            noHeader?: boolean;
            sampleItem: Record<string, string>;
        };
        mask?: string;
        maskBlocks?: Record<string, unknown>;
        multiple?: boolean;
        pickerConfigs?: {
            accepts?: string[];
            multiple?: boolean;
            name?: string;
        };
        radioGroupConfigs?: {
            gap?: string;
            horizontal?: boolean;
        };
        required?: boolean;
        selectConfigs?: {
            fullWidthPopup?: boolean;
            placement?: "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "right" | "right-start" | "right-end" | "left" | "left-start" | "left-end" | "center";
        };
        show?: boolean | ((record: Record<string, unknown>) => boolean);
        sizeInputGroupConfigs?: {
            useMask?: boolean;
        };
        skipShowCheck?: boolean;
        tab?: "content" | "styling" | "effects";
        translatable?: boolean;
        translateGroup?: string;
        type: "attribute" | "property" | "style" | "decorative";
        uncheckedValue?: string | boolean;
        useSearchTerm?: boolean;
        videoFormatPickerConfigs?: {
            assetIdKey?: string;
            assetVersionKey?: string;
            formatLabelKey?: string;
            formatSrcKey?: string;
            versionLabelKey?: string;
        };
        width?: ((record: Record<string, unknown>) => string | number) | string | number;
    };
}
