///
import { DimensionFilterValues } from '../model/data-item/_dimension-filter-values';
import { Dimension } from '../model/data-item/dimension';
import { DataSource } from '../model/data-sources/data-source';
import { DashboardItem } from '../model/items/dashboard-item';
import { DataDashboardItem } from '../model/items/data-dashboard-item';
import { IQueryParameter } from '../model/parameters/parameter';
import { IExportOptions } from '../viewer-parts/_export-options';
import { IFilterItem } from './_data-source-browser';
import { DashboardContainer, IRemoteService } from './common-interfaces';
import { ClientExportState, ExportMode } from './extensions/_export-dialog-binder';
import { DashboardExportFormat } from './extensions/export-extension';
import { IDataServiceUrls, IErrorHandler } from './internal/_interfaces';
export interface ExportInfo {
Mode: ExportMode;
GroupName: string;
FileName: string;
ClientState: ClientExportState;
Format: DashboardExportFormat;
DocumentOptions: IExportOptions;
ItemType: string;
}
export interface ItemExportModel {
name: string;
query: any;
drillDownFormattableValues: Array;
filterFormattableValues: Array;
selectedValues: Array;
}
interface ICommonQueryArgs {
dashboardId: string;
parameters: IQueryParameter[];
dashboard?: Object;
}
export interface IDataServiceClient {
convertItem(item: DashboardItem, destinationItemTypeName: string): JQueryPromise<{}>;
getParameterValues(dataSourceId: string, dataSource: DataSource, dataMember: string, valueMember: string, displayMember: string, sortOrder: string, sortByMember: string, parameterType: string, changedParameters: string[]): JQueryPromise<{}>;
getDimensionUniqueValues(dataSource: DataSource, dataMember: string, dimension: Dimension): JQueryPromise<{}>;
getDimensionFilterItems(dashboardItem: DashboardItem, dimensionDataMember: string, previousState: Array, branch: Array): JQueryPromise>;
getDimensionFilterString(dashboardItem: DashboardItem, dimensionDataMember: string, previousState: Array): JQueryPromise;
getFieldList(dataSource: DataSource, dataMember: string, fieldPath: string): JQueryPromise<{}>;
getItemData(item: DashboardItem, isModeAllowsToReduceData: boolean): JQueryPromise<{}>;
getColoringScheme: (itemName: string) => JQueryPromise<{}>;
getMapShapeFile: (itemName: string) => JQueryPromise<{}>;
getDashboardPalette: () => JQueryPromise