export type DesignerSystemConfig = {
    designer: DesignerConfig;
};
export type DesignerConfig = {
    mainWindow: MainWindowConfig;
    supportedThemes: string[];
    themes: any;
    previewWindow: PreviewWindowConfig;
};
export type PreviewWindowConfig = {
    uiPreview: previewToolbar;
    schema: schemaToolbar;
    formdefinition: formDefinitionToolbar;
};
export type previewToolbar = {
    previewToolbar: previewToolbarSection;
    supportedThemes: string[];
};
export type previewToolbarSection = {
    visualState: string[];
    resolution: string[];
};
export type schemaToolbar = {
    schemaToolbar: string[];
};
export type formDefinitionToolbar = {
    formdefinitionToolbar: string[];
};
export type MainWindowConfig = {
    canvas: CanvasConfig;
    controlPalette: ControlPaletteConfig;
    toolbar: ToolbarConfig;
    properties: PropertiesConfig;
};
export type CanvasConfig = {
    themes: any;
    leftSplitter: LeftSplitterConfig;
    rightSplitter: RightSplitterConfig;
    leftCollapse: LeftCollapseConfig;
    rightCollapse: RightCollapseConfig;
    supportedThemes: string[];
};
export type ControlPaletteConfig = {
    themes: any;
    startingWidth: string;
    sections: SectionsConfig;
    controls: ControlTypeConfig;
};
export type SectionsConfig = {
    components: SectionConfig;
    models: SectionConfig;
    templates: SectionConfig;
};
export type SectionConfig = {
    allowFacetedFiltering: boolean;
    collapsible: boolean;
    collapsedByDefault: boolean;
    facets: any;
    maxHeight: number;
    search: boolean;
    shown: boolean;
    type: string;
    title?: LocalisedStringObject;
    headerStyle?: string;
    listItemStyle?: string;
    imageStyle?: string;
};
interface LocalisedStringObject {
    [key: string]: LocalisedString;
}
export type ToolbarConfig = {
    themes: any;
    addTemplate: AddTemplateConfig;
    copy: CopyConfig;
    cut: CutConfig;
    paste: PasteConfig;
    delete: DeleteConfig;
    preview: PreviewConfig;
    redo: UndoRedoConfig;
    saveLayoutTemplate: SaveLayoutTemplateConfig;
    saveTemplate: SaveLayoutTemplateConfig;
    undo: UndoRedoConfig;
};
export type PropertiesConfig = {
    themes: any;
    startingWidth: string;
    showAsSections: boolean;
    sections: PropertiesSectionsConfig;
    controlConfigs: ControlTypeDefinitionConfig;
    iframe?: URLConfig;
    link?: URLConfig;
    additionalConstraints?: AdditionalConstraintsConfig;
};
export type OtOptionsConfig = {
    displayName: string;
    url: string;
};
export type URLConfig = {
    linkList?: {
        allowFreeText?: boolean;
        links?: OtOptionsConfig[];
    };
    referrerPolices?: {
        text: string;
        value: string;
    }[];
    sandboxOptions?: {
        text: string;
        value: string;
    }[];
};
export type PropertiesSectionsConfig = {
    controlProperties: PropertiesSectionConfig;
    fieldProperties: PropertiesSectionConfig;
    formProperties: PropertiesSectionConfig;
};
export type PropertiesSectionConfig = {
    collapsible: boolean;
    collapsedByDefault: boolean;
    maxHeight: number;
    order: number;
    shown: boolean;
    title?: LocalisedStringObject;
};
export type LeftSplitterConfig = {
    enabled: boolean;
};
export type RightSplitterConfig = {
    enabled: boolean;
};
export type LeftCollapseConfig = {
    enabled: boolean;
};
export type RightCollapseConfig = {
    enabled: boolean;
};
export type LocalisedString = {
    text: string;
};
export type AddTemplateConfig = {
    shown: boolean;
};
export type DeleteConfig = {
    hide: boolean;
};
export type CutConfig = {
    hide: boolean;
};
export type CopyConfig = {
    hide: boolean;
};
export type PasteConfig = {
    hide: boolean;
};
export type PreviewConfig = {
    shown: boolean;
};
export type UndoRedoConfig = {
    hide: boolean;
};
export type previewWindowEnabled = {
    show: boolean;
};
export type SaveLayoutTemplateConfig = {
    shown: boolean;
};
export type AdditionalConstraintsConfig = {
    shown: boolean;
};
interface ControlTypeConfig {
    [key: string]: ControlConfig | ControlTypeConfig;
}
export type ControlConfig = {
    configName?: string;
    shown: boolean;
    supported: boolean;
    numericInputAlignment?: string;
};
interface ControlTypeDefinitionConfig {
    [key: string]: any;
}
export declare function mergeSystemConfigs(defaultSystemConfig: any, overrideSystemConfig: any, changes: object[]): void;
export declare function getDefaultSystemConfig(): DesignerSystemConfig;
export {};
