import { OcpdStringLocalizationHelper } from '../singletons/ocpd-string-localization';
import { OcpdFormClientAPIService } from '../singletons/ocpd-form-client-api-service';
import { OcpdItemManagerHelper } from '../singletons/ocpd-item-manager-helper';
import { OcpdFormSchemaManager } from '../singletons/ocpd-form-schema-manager';
import { OptionsEditor, PropertiesPane, General } from '../models/localization-types';
import { OcpdComponentRegister } from '../singletons/ocpd-component-register';
import { OcpdLocalizationService } from '../singletons/ocpd-localization-service';
export declare class OcpdAddOptions {
    _popupContent: any;
    dataTheme: string;
    toggleOptionsEventHandler: any;
    _ocpdItemManagerHelper: OcpdItemManagerHelper;
    _ocpdStringLocalizationHelper: OcpdStringLocalizationHelper;
    _ocpdFormClientAPIService: OcpdFormClientAPIService;
    _ocpdFormSchemaManager: OcpdFormSchemaManager;
    _localeDataOptionsEditor: OptionsEditor;
    _ocpdComponentRegister: OcpdComponentRegister;
    _localeData: PropertiesPane;
    _localeDataGeneral: General;
    _ocpdLocalizationService: OcpdLocalizationService;
    constructor();
    userInterfaceLocaleChanged(locale?: string): Promise<void>;
    setTheme(theme: string): void;
    initializeAddOptionsButton(runtimeInstance: any, currentId: any, theme: any): void;
    openAddOptionsDialog(itemId: any, event: MouseEvent | KeyboardEvent): Promise<void>;
    getWarningMessageForNonDefaultLocale(workingModel: any): string;
    getOptionsNonDefaultLocaleWarning(workingModel: any): string;
    toggleEnumType(event: MouseEvent | KeyboardEvent): void;
    changeAddOptionsTabVisibility(): void;
    addOptionsClosed(workingModel: any, event: PointerEvent): Promise<void>;
    addOptionsToWorkingSchema(addOptions: any): Promise<void>;
    getAddOptionsDialogJson(propertyName: any): {
        controls: {
            width: string;
            height: string;
            type: string;
            id: string;
            rearrangeControlsForSmallScreens: boolean;
            title: {
                show: boolean;
                text: string;
            };
            controls: {
                type: string;
                numberOfColumns: number;
                grid: {
                    gap: number;
                    gridTemplateRows: string;
                };
                id: string;
                controls: ({
                    label: {
                        text: string;
                        position: string;
                    };
                    gridColumnStart: number;
                    gridColumnEnd: number;
                    gridRowStart: number;
                    gridRowEnd: number;
                    propertyPath: string;
                    disabled: boolean;
                    type: string;
                    id: string;
                    title?: undefined;
                    border?: undefined;
                    controls?: undefined;
                } | {
                    gridColumnStart: number;
                    gridColumnEnd: number;
                    gridRowStart: number;
                    gridRowEnd: number;
                    type: string;
                    id: string;
                    title: {};
                    border: string;
                    controls: {
                        type: string;
                        id: string;
                        title: {
                            show: boolean;
                        };
                        rearrangeControlsForSmallScreens: boolean;
                        controls: {
                            type: string;
                            id: string;
                            numberOfColumns: number;
                            grid: {
                                gridTemplateRows: string;
                                gap: number;
                                noMargin: boolean;
                            };
                            controls: {
                                gridColumnStart: number;
                                gridColumnEnd: number;
                                gridRowStart: number;
                                gridRowEnd: number;
                                type: string;
                                id: string;
                                title: {
                                    text: string;
                                };
                                noRecordsFoundMessage: string;
                                propertyPath: string;
                                columns: ({
                                    controlData: {
                                        dataType: string;
                                        id: string;
                                        isInGrid: boolean;
                                        label: {
                                            text: string;
                                            show: boolean;
                                            alignment?: undefined;
                                        };
                                        propertyPath: string;
                                        type: string;
                                        readOnly: boolean;
                                        backgroundColor?: undefined;
                                        backgroundImage?: undefined;
                                        border?: undefined;
                                    };
                                    width: number;
                                } | {
                                    controlData: {
                                        dataType: string;
                                        id: string;
                                        isInGrid: boolean;
                                        label: {
                                            text: string;
                                            show: boolean;
                                            alignment?: undefined;
                                        };
                                        propertyPath: string;
                                        type: string;
                                        readOnly?: undefined;
                                        backgroundColor?: undefined;
                                        backgroundImage?: undefined;
                                        border?: undefined;
                                    };
                                    width: number;
                                } | {
                                    controlData: {
                                        id: string;
                                        isInGrid: boolean;
                                        label: {
                                            text: string;
                                            show: boolean;
                                            alignment: string;
                                        };
                                        type: string;
                                        backgroundColor: string;
                                        backgroundImage: string;
                                        border: string;
                                        propertyPath: string;
                                        dataType?: undefined;
                                        readOnly?: undefined;
                                    };
                                    width: number;
                                })[];
                                allowAdd: boolean;
                            }[];
                        }[];
                    }[];
                    label?: undefined;
                    propertyPath?: undefined;
                    disabled?: undefined;
                })[];
            }[];
        }[];
    };
}
