///
import { Disposable } from '@devexpress/analytics-core/analytics-utils';
import { Properties as dxScrollViewOptions } from 'devextreme/ui/scroll_view';
import * as ko from 'knockout';
import { type } from '../../data/_utils';
import { DashboardItem } from '../../model';
import { Dashboard } from '../../model/dashboard';
import { DataSourceBrowser } from '../_data-source-browser';
import { IExtension, KnockoutTemplate } from '../common-interfaces';
import { DashboardLayoutController, ISizeController, VisibleItemsProvider } from '../internal/_interfaces';
import { ElementAccessorKoComponentArgs } from '../internal/_ko-element-accessor';
import { ViewerApi } from '../viewer/_viewer-api';
import { IDashboardContext } from '../viewer/_viewer-interfaces';
import { DashboardTitleContext } from '../viewer/title/_title-component';
import { FullscreenItemModel } from './_docking-layout-fullscreen-item';
import { LayoutItem } from './core/_layout-item';
import { LayoutDragController } from './drag-and-drop/_drag-controller';
export declare class DockingLayoutController extends Disposable implements DashboardLayoutController {
dashboardModel: Dashboard;
dataSourceBrowser: DataSourceBrowser;
context: IDashboardContext;
findExtension: (name: string) => IExtension;
allowMaximizeItems: boolean;
resizeByTimer: ko.Observable;
repaintRequest: JQueryCallback;
encodeHtml: boolean;
constructor(dashboardModel: Dashboard, dataSourceBrowser: DataSourceBrowser, context: IDashboardContext, findExtension: (name: string) => IExtension, allowMaximizeItems: boolean, resizeByTimer: ko.Observable, repaintRequest: JQueryCallback, encodeHtml: boolean, viewerApi: ViewerApi);
selectedLayoutItem: ko.Computed;
titleContext: DashboardTitleContext;
get fullscreenItemProvider(): FullscreenItemModel;
select(item: LayoutItem): void;
dragController: LayoutDragController;
_scrollSubscriptions: any[];
scrollViewEvents: dxScrollViewOptions;
subscribeOnScroll(handler: () => void): void;
unsubscribeOnScroll(handler: () => void): void;
rootItem: LayoutItem;
allowExportDashboard: boolean;
fullscreenItemModel: FullscreenItemModel;
layoutMainElementEvents: ElementAccessorKoComponentArgs;
itemInteractionInProgress: ko.Observable;
_selectedLayoutItem: ko.Observable;
selectedDashboardItem: ko.Computed;
emptyItemTemplates: ko.ObservableArray;
emptyItemTemplatesService: (layoutItem: LayoutItem) => KnockoutTemplate;
contextMenu: (layoutItem: LayoutItem) => KnockoutTemplate;
layoutItemPlaceholderService: (layoutItem: LayoutItem) => KnockoutTemplate;
addDashboardItem: (data: {
type: string;
}) => void;
width: ko.Observable;
height: ko.Observable;
headerHeight: ko.Observable;
visibleItemsProvider: VisibleItemsProvider;
dispose(): void;
}