import { UiWorkSpaceLayoutItemConfig } from "../../generated/UiWorkSpaceLayoutItemConfig";
import { ItemTreeItem } from "./ItemTree";
import { SplitPaneItem } from "./SplitPaneItem";
import { TabPanelItem } from "./TabPanelItem";
import { UiWorkSpaceLayoutViewGroupItemConfig } from "../../generated/UiWorkSpaceLayoutViewGroupItemConfig";
import { UiWorkSpaceLayoutViewConfig } from "../../generated/UiWorkSpaceLayoutViewConfig";
import { TeamAppsUiContext } from "../TeamAppsUiContext";
import { UiViewGroupPanelState } from "../../generated/UiViewGroupPanelState";
export declare class LayoutDescriptorApplyer {
    private $rootItemContainer;
    private viewGroupFactory;
    private setViewGroupPanelStateFunction;
    private context;
    private static logger;
    private descriptorItemById;
    private descriptorViewNames;
    private clientItemsById;
    private clientViewsByName;
    private clientItemStash;
    constructor($rootItemContainer: HTMLElement, viewGroupFactory: (config: UiWorkSpaceLayoutViewGroupItemConfig, parent: SplitPaneItem) => TabPanelItem, setViewGroupPanelStateFunction: (viewGroupItem: TabPanelItem, panelState: UiViewGroupPanelState) => void, context: TeamAppsUiContext);
    apply(currentRootItem: ItemTreeItem, newLayoutDescriptor: UiWorkSpaceLayoutItemConfig, newViewConfigs: UiWorkSpaceLayoutViewConfig[]): ItemTreeItem;
    private buildDescriptorDictionaries;
    private buildClientItemDictionaries;
    cleanupUnknownClientItems(clientSideItem: ItemTreeItem, descriptorItem: UiWorkSpaceLayoutItemConfig, parent: SplitPaneItem | null): void;
    private stashUnknownViews;
    private addNewStructure;
    private createTreeItemFromLayoutDescriptor;
    private addViews;
}
