///
import * as ko from 'knockout';
import { CancellationToken } from '../../common/_helpers';
import { IExtension, KeyEventType, KnockoutTemplate, SequenceAction, WorkingModeSwitchingOptions } from '../../common/common-interfaces';
import { DashboardControl } from '../../common/dashboard-control';
import { LayoutItem } from '../../common/docking-layout/core/_layout-item';
import { DisposableObject } from '../../model/disposable-object';
import { ToolboxViewModel } from './_toolbox-view-model';
import { DashboardMenuItem, DashboardToolbarGroup, DashboardToolbarItem, DashboardToolboxGroup, DashboardToolboxItem } from './toolbox-items';
export declare class ToolboxExtension extends DisposableObject implements IExtension {
private dashboardControl;
name: string;
template: KnockoutTemplate;
designerToViewerAction: SequenceAction;
viewerToDesignerAction: SequenceAction;
_viewModel: ToolboxViewModel;
private _switchToViewerToolbar;
get menuVisible(): ko.Observable;
menuItems: ko.ObservableArray;
addMenuItem: (menuItem: DashboardMenuItem) => void;
removeMenuItem: (menuItemId: string) => void;
selectMenuItem: (menuItem: DashboardMenuItem) => void;
toolboxGroups: ko.ObservableArray;
addToolboxItem: (groupName: string, toolboxItem: DashboardToolboxItem) => void;
removeToolboxItem: (groupName: string, toolboxItemName: string) => void;
toolbarGroups: ko.ObservableArray;
addToolbarItem: (groupName: string, toolbarItem: DashboardToolbarItem) => void;
removeToolbarItem: (groupName: string, toolbarItemName: string) => void;
openMenu(): void;
closeMenu(): void;
showPanelAsync: (options: WorkingModeSwitchingOptions) => JQueryPromise<{}>;
_showPanelAsync: (options: WorkingModeSwitchingOptions, cancellationToken: CancellationToken) => JQueryPromise;
hidePanelAsync: (options: WorkingModeSwitchingOptions) => JQueryPromise<{}>;
_hidePanelAsync: (options: WorkingModeSwitchingOptions, cancellationToken: CancellationToken) => JQueryPromise;
processKeyEvent(keyEventType: KeyEventType, eventArgs: JQueryKeyEventObject): boolean;
constructor(dashboardControl: DashboardControl);
start(): void;
stop(): void;
_layoutItemPlaceholderService: (layoutItem: LayoutItem) => KnockoutTemplate;
private _registerCustomItemToolbox;
private _createDefaultGroups;
private _registerToolboxItem;
private _unregisterToolboxItem;
private _findToolboxGroup;
private _findMenuItem;
}