///
///
import * as ko from 'knockout';
import { Dashboard } from '../model/dashboard';
import { DashboardState } from '../model/dashboard-state';
import { DisposableType } from '../model/disposable-object';
import { DataSourceBrowser } from './_data-source-browser';
import { IDataServiceClient } from './_service-client';
import { DashboardContainer, IExtension, IRemoteService, KnockoutTemplate } from './common-interfaces';
import { DashboardControlEvents, DashboardControlOptions, DashboardOptionChangedArgs, RefreshItemsArgs } from './control-options';
import { DashboardUpdateHub } from './dashboard-update-hub/_dashboard-update-hub';
import { DockingLayoutAdapter } from './docking-layout/_docking-layout-adapter';
import { DashboardLayoutController, IEndpointCollection, LayoutInfoProvider } from './internal/_interfaces';
import { NotificationController } from './notification-controller/notificator';
import { ViewerApi } from './viewer/_viewer-api';
import { IDashboardContext } from './viewer/_viewer-interfaces';
export declare class DashboardControl {
private static _recursiveAsyncEval;
get _updateHub(): DashboardUpdateHub;
get encodeHtml(): boolean;
_repaintRequest: JQuery.Callbacks;
private _extensions;
private _updateHubPrivate;
_dashboardContext: IDashboardContext;
private _allowSwitchToDesigner;
private _controlOptions;
private _defaultControlOptions;
_viewerApi: ViewerApi;
_externalTemplates: ko.Computed;
_endpointCollection: IEndpointCollection;
_serviceClient: ko.Observable;
_displayAllData: ko.Observable;
_widgetContainer: HTMLElement;
_dataSourceBrowser: DataSourceBrowser;
_isLoading: ko.Observable;
_perDashboardDisposables: Array;
_layoutInfo: ko.Observable<{
template: KnockoutTemplate;
layoutController: ko.Subscribable;
}>;
_layoutInfoProviderCollection: LayoutInfoProvider[];
_dockingLayoutAdapter: DockingLayoutAdapter;
_actualLayoutController: ko.Computed;
_emptyControlTemplates: ko.ObservableArray;
_surfaceLeft: ko.Observable;
_surfaceTop: ko.Observable;
surfaceLeft: ko.Observable;
surfaceTop: ko.Observable;
resizeByTimer: ko.Observable;
remoteService: IRemoteService;
notificationController: NotificationController;
get showConfirmationOnBrowserClosing(): boolean;
isDesignMode: ko.Observable;
dashboardContainer: ko.Observable;
dashboard: ko.Computed;
customTemplates: ko.ObservableArray;
getWidgetContainer: () => HTMLElement;
get allowSwitchToDesigner(): boolean;
get maximizedDashboardItemName(): string;
get extensions(): IExtension[];
get _classList(): string;
element(): Element;
private _element;
_eventsStrategy: any;
on>(eventName: K, eventHandler: (ev: DashboardControlEvents[K]) => any): void;
off>(eventName: K, eventHandler: (ev: DashboardControlEvents[K]) => any): void;
_raiseEvent>(eventName: K, eventArgs: DashboardControlEvents[K]): void;
private _options;
option(): DashboardControlOptions;
option(name: string): any;
option(name: string, value: any): any;
option(args: DashboardControlOptions): any;
_silent(...args: any[]): any;
resetOption(name: any): void;
private _updateController;
beginUpdate(): void;
endUpdate(): void;
_getOptionValue(name: any, context?: any): any;
_getDefaultOptions(): DashboardControlOptions;
_getOptionsByReference(): {};
_getDeprecatedOptions(): {};
_notifyOptionChanged(option: any, value: any): void;
_reinitializeDashboard(): void;
private _getCebabCaseExtensionName;
private _getCamelCaseExtensionName;
private _optionChanging;
_optionChanged(args: DashboardOptionChangedArgs): void;
private _updateRemoteServiceOptions;
private _processExtensionsOption;
private _createExtensionOption;
private _processExtensionsOptions;
constructor(element: Element, options?: DashboardControlOptions);
_updateLayout(): void;
get _colorSchemeCss(): "dx-color-scheme-light" | "dx-color-scheme-dark";
repaint(): void;
render(): void;
maximizeDashboardItem(itemName: string): void;
restoreDashboardItem(): void;
initializeDashboard(id: string, dashboardJson: Object, initialState?: DashboardState): void;
requestDashboardList(): JQueryPromise;
_dashboardLoadingDeferred: JQueryDeferred;
loadDashboard(dashboardId: string): JQueryPromise;
_loadDashboardCore(dashboardId: string): JQueryPromise;
unloadDashboard(): void;
_unloadDashboardCore(): void;
switchToViewer(): void;
_workingModeChangeDeferred: JQuery.Deferred;
_switchToViewer(): JQueryPromise;
switchToDesigner(): void;
_switchToDesigner(): JQueryPromise;
reloadData(): void;
refresh(args?: RefreshItemsArgs): void;
getDashboardState(): string;
setDashboardState(dashboardState: DashboardState | string): void;
getDashboardId(): string;
registerIcon(icon: string | HTMLElement, id?: string): void;
registerExtension(...extensions: IExtension[]): void;
private _registerExtensionCore;
findExtension(extensionName: string): IExtension;
unregisterExtension(...extensionNames: string[]): void;
private _unregisterExtensionCore;
subscribeExtensionsChanged(handlers: {
added?: (item: IExtension) => void;
deleted?: (item: IExtension) => void;
}): ko.Subscription;
dispose(): void;
_renderDashboardItem(element: Element, dashboardItemName: string, isStandalone?: boolean): void;
private _getFullscreenItemProvider;
private _registerKeyProcessing;
private _registerDefaultExtensions;
private _unrollEndpointCollection;
private _loadInitialDashboard;
private _initializeServiceClient;
private _validateWorkingMode;
private _canAddExtension;
private _addExtension;
private _startExtension;
private _unloadDashboardServices;
private _applyBindings;
private _remoteServiceFactory;
private _createRemoteService;
}