import { VersionedLayout, VersionedLayoutDefinition, EditorDisplayModes, GuidValue, IActionButton, IEditorItem, IEditorItemPanelsRenderer, IEditorTabRegistration, IVersionedData, Layout, LayoutEditorCanvasApi, ThemeDefinition, LayoutEditorModes } from "@omnia/fx-models";
import { VersionedLayoutEditorStore } from "..";
import { VersionedLayoutStore, MultilingualStore } from "../../../stores";
import { EditorChromeStore } from "../../editorchrome";
import { OmniaUxLocalization } from "../../UxModels";
import { IVersionedLayoutDefinitionEditorTabRenderer } from "./IVersionedLayoutDefinitionEditorTabRenderer";
import { RefreshStateOption } from "./RefreshStateOption";
declare class PanelRenderer implements IEditorItemPanelsRenderer {
    generateElement(h: any): JSX.Element;
}
export declare class VersionedLayoutDefinitionEditorItemPrivateImutableState {
    readonly multilingualStore: MultilingualStore;
    readonly editorChromeStore: EditorChromeStore;
    readonly versionedLayoutEditorStore: VersionedLayoutEditorStore;
    readonly versionedLayoutStore: VersionedLayoutStore;
    readonly layoutThemeDefinition: ThemeDefinition;
    readonly blockThemeDefinition: ThemeDefinition;
    readonly enableAlternateLayouts: boolean;
    readonly enableBlockLockSettings: boolean;
    readonly hideDeleteButton: boolean;
    readonly hideBreakpointPreview: boolean;
    readonly hasEditPermission: boolean;
    readonly currentIdentity: string;
    readonly parentVersionedLayout: VersionedLayout;
    readonly layoutEditorMode?: LayoutEditorModes;
    readonly authDisabled?: boolean;
    readonly layoutProvider?: string;
}
export declare class VersionedLayoutDefinitionEditorItemState {
    versionedLayout: VersionedLayout;
    versionedData: IVersionedData<VersionedLayoutDefinition>;
    layout: Layout;
    title: string;
}
export declare class VersionedLayoutDefinitionEditorItem implements IEditorItem {
    private immutableState;
    state: VersionedLayoutDefinitionEditorItemState;
    loc: OmniaUxLocalization;
    settings: {
        defaultDisplayMode: EditorDisplayModes;
    };
    tabs: IEditorTabRegistration[];
    title: string | JSX.Element | JSX.Element[];
    private isCheckedOut;
    private isCheckedOutToMe;
    private layoutEditorCanvasApi;
    private extendedtabRenderer;
    private extendedRightItemExtendButtons;
    private isDefaultLayout;
    private _defaultLayoutEditorTabApiReadyCallBack;
    panelsRenderer: PanelRenderer;
    constructor(immutableState: VersionedLayoutDefinitionEditorItemPrivateImutableState, state: VersionedLayoutDefinitionEditorItemState);
    private createDesignAndPreviewButton;
    addRightItemExtendButton(actionButton: IActionButton): void;
    addTabRenderer(tabId: GuidValue, tabName: string, tabRenderer: IVersionedLayoutDefinitionEditorTabRenderer): void;
    onDefaultLayoutEditorTabApiReady(cb: (api: LayoutEditorCanvasApi) => void): void;
    private setLayoutEditorCanvasApi;
    private discardChanges;
    private saveAsDraft;
    private delete;
    private publish;
    private clickVersionHistory;
    private checkOut;
    private takeControl;
    setNewVersionedData(newVersionedData: IVersionedData<VersionedLayoutDefinition>, mergeWithoutCache?: boolean, refreshStateOption?: RefreshStateOption): Promise<void>;
    private setNewEditorItem;
    private loadLayout;
    private generateDisplayBreakpoints;
    private generateAlternateLayoutMapping;
    private generateVersionHistoryButton;
    private generatePublishButton;
    private generateDiscardButton;
    private generateCheckOutButton;
    private generateCloseButton;
    private generateSaveAsDraftButton;
    private generateDeleteButton;
    private generateTakeOverButton;
    private rightItemRenderer;
    private rightItemExtendRenderer;
    private leftItemExtendRenderer;
    private leftItemRenderer;
    private leftItemRendererForLayoutTab;
    private emptyActionItem;
    private previousJson;
    private triggerAutoSave;
    private fetchLayout;
    onEditorActivation(): void;
}
export {};
