import { DataSourceBrowser } from '../../../common/_data-source-browser'; import { Dashboard, DashboardItem, DataDashboardItem } from '../../../model'; import { DataItemContainer } from '../../../model/items/data-item-container'; import { AccordionTab } from '../../properties-controller/_accordion-tab'; import { PropertiesController } from '../../properties-controller/_properties-controller'; export interface IComposeTabsArgs { } export interface IDashboardItemComposeTabsArgs extends IComposeTabsArgs { dashboard?: Dashboard; dataSourceBrowser?: DataSourceBrowser; propertiesController?: PropertiesController; } export interface IDataItemContainerComposeTabsArgs extends IComposeTabsArgs { dashboardItem: DataDashboardItem; dataSourceBrowser?: DataSourceBrowser; containerType?: ko.Observable; } export interface IDetailsPropertiesComposer extends IDetailsPropertiesComposerBase { } export interface IDetailsPropertiesComposerBase { composeTabs(model: TModel, args?: TArgs): Array; } export declare abstract class PropertiesComposerBase implements IDetailsPropertiesComposerBase { private _customizeTabs; constructor(_customizeTabs: ((tabs: AccordionTab[], model: TModel, args: TArgs) => void)); protected abstract _composeTabsCore(model: TModel, args?: TArgs): any; composeTabs(model: TModel, args?: TArgs): Array; } export type CustomizeDataItemContainerTabs = (tabs: AccordionTab[], model: DataItemContainer, args: IDataItemContainerComposeTabsArgs) => void; export declare abstract class DataItemContainerPropertiesComposer extends PropertiesComposerBase { constructor(_customizeTabs: CustomizeDataItemContainerTabs); } export type CustomizeDashboardItemTabs = (tabs: AccordionTab[], model: DashboardItem, args: IDashboardItemComposeTabsArgs) => void; export declare abstract class DashboardItemPropertiesComposer extends PropertiesComposerBase { constructor(_customizeTabs: CustomizeDashboardItemTabs); }