///
import { DxElement as DevExtremeElement } from 'devextreme/core/element';
import { CustomItemViewer } from '../common/custom-viewer-item/custom-viewer-item';
import { Dashboard } from '../model/dashboard';
import { CustomItem } from '../model/items/custom-item/custom-item';
import { ICustomItemMetaData } from '../model/items/custom-item/meta';
export type DxElement = DevExtremeElement;
export interface DashboardContainer {
id: string;
dashboard: Dashboard;
}
export type ErrorInfo = JQueryXHR | string;
export interface IExtension {
name: string;
start?(): void;
stop?(): void;
processKeyEvent?(keyEventType: KeyEventType, eventArgs: JQueryKeyEventObject): boolean;
designerToViewerAction?: SequenceAction;
viewerToDesignerAction?: SequenceAction;
}
export interface ICustomItemExtension extends IExtension {
metaData: ICustomItemMetaData;
createViewerItem: (item: CustomItem, element: DxElement, content: any) => CustomItemViewer;
}
export type KeyEventType = 'keyup' | 'keydown';
export interface KnockoutTemplate {
name: string;
data?: any;
}
export interface WorkingModeSwitchingOptions {
surfaceLeft?: number;
surfaceTop?: number;
}
export interface SequenceAction {
orderNo: number;
action: (options: WorkingModeSwitchingOptions) => JQueryPromise;
}
export interface IRemoteService {
getFromServer: (url: string, data?: Object, queryOptions?: Object, abortController?: AbortController) => TResponse;
postToServer: (url: string, data?: Object, abortController?: AbortController) => TResponse;
performPostback: (url: string, args: Object, abortController?: AbortController) => JQueryPromise;
}
export interface AjaxRemoteServiceOptions {
beforeSend?: (jqXHR: JQueryXHR, settings: JQueryAjaxSettings) => any;
complete?: (jqXHR: JQueryXHR, textStatus: string) => any;
headers?: {
[key: string]: any;
};
}
export interface FetchRemoteServiceOptions {
headers?: {
[key: string]: any;
};
beforeSend?: (settings: RequestInit) => void;
}
export interface DashboardInfo {
id: string;
name: string;
}