export type StringStringDict = { [key: string]: string; }; export type IFilterRule = "==" | "!=" | "<" | "<=" | ">" | ">=" | "set" | "notequals"; export interface IFilter { fieldid: string; nullable: boolean; rule: IFilterRule; minid?: string; maxid?: string; } export interface IOutput { id: string; from?: string; filter?: IFilter[]; notify?: string[]; } export interface IDatasource { id: string; filter?: IFilter[]; outputs: IOutput[]; } export interface IWorkunitDatasource extends IDatasource { WUID: boolean; } export declare function isWorkunitDatasource(ref: IAnyDatasource): ref is IWorkunitDatasource; export interface IDatabombDatasource extends IDatasource { databomb: true; } export declare function isDatabombDatasource(ref: IAnyDatasource): ref is IDatabombDatasource; export interface IHipieDatasource extends IDatasource { URL: string; } export declare function isHipieDatasource(ref: IAnyDatasource): ref is IHipieDatasource; export type IAnyDatasource = IWorkunitDatasource | IDatabombDatasource | IHipieDatasource; export interface IEventUpdate { visualization: string; instance?: string; datasource: string; col?: string; merge: boolean; mappings?: StringStringDict; } export interface IEvent { mappings?: StringStringDict; updates: IEventUpdate[]; } export interface IPieMapping { label: string; weight: string; } export interface ILineMapping { x: string[]; y: string[]; } export interface ITableMapping { value: string[]; } export interface IChoroMapping { weight: string | string[]; } export interface IChoroUSStateMapping extends IChoroMapping { state: string; } export interface IChoroUSCountyMapping extends IChoroMapping { county: string; } export interface IChoroGeohashMapping extends IChoroMapping { geohash: string; } export interface IGraphMapping { uid: string; label: string; weight: string; flags: string; } export interface IGraphLinkMapping { uid: string; } export interface IHeatMapMapping { x: string; y: string; weight: string; } export interface ISliderMapping { label: string; } export interface ISource { id: string; output: string; sort?: string[]; first?: string | number; reverse?: boolean; properties?: StringStringDict; } export interface IPieSource extends ISource { mappings: IPieMapping; } export interface ILineSource extends ISource { mappings: ILineMapping; } export interface ITableSource extends ISource { mappings: ITableMapping; } export interface IGraphLink { mappings: IGraphLinkMapping; childfile: string; } export interface IGraphSource extends ISource { mappings: IGraphMapping; link: IGraphLink; } export interface IHeatMapSource extends ISource { mappings: IHeatMapMapping; } export interface IChoroSource extends ISource { mappings: IAnyChoroMapping; } export interface ISliderSource extends ISource { mappings: ISliderMapping; } export type VisualizationType = "PIE" | "LINE" | "BAR" | "TABLE" | "CHORO" | "GRAPH" | "HEAT_MAP" | "SLIDER" | "SUMMARY" | "FORM" | "2DCHART" | "WORD_CLOUD" | "BUBBLE"; export type VisualizationFieldDataType = "bool" | "boolean" | "integer" | "integer4" | "integer8" | "unsigned" | "unsigned4" | "unsigned8" | "float" | "double" | "real" | "real4" | "real8" | "string" | "date" | "time" | "geohash" | "dataset" | "visualization"; export type VisualizationFieldType = VisualizationFieldDataType | "range"; export type VisualizationFieldFuncitonType = "SUM" | "AVE" | "MIN" | "MAX" | "SCALE"; export interface IVisualizationField { id: string; properties: { label?: string; datatype: VisualizationFieldDataType; default?: any[]; function?: VisualizationFieldFuncitonType; params?: { param1: string; param2: string; }; type: VisualizationFieldType; }; } export interface IVisualization { id: string; title?: string; type: VisualizationType; fields?: IVisualizationField[]; properties?: { charttype?: string; [key: string]: any; }; events?: { [key: string]: IEvent; }; onSelect?: any; color?: any; } export interface IPieVisualization extends IVisualization { type: "PIE" | "BAR"; source: IPieSource; } export declare function isPieVisualization(viz: IAnyVisualization): viz is IPieVisualization; export interface ILineVisualization extends IVisualization { type: "LINE"; source: ILineSource; } export declare function isLineVisualization(viz: IAnyVisualization): viz is ILineVisualization; export type ChoroColor = "default" | "YlGn" | "YlGnBu" | "GnBu" | "BuGn" | "PuBuGn" | "PuBu" | "BuPu" | "RdPu" | "PuRd" | "OrRd" | "YlOrRd" | "YlOrBr" | "Purples" | "Blues" | "Greens" | "Oranges" | "Reds" | "Greys" | "PuOr" | "BrBG" | "PRGn" | "PiYG" | "RdBu" | "RdGy" | "RdYlBu" | "Spectral" | "RdYlGn" | "RdWhGr"; export interface IChoroVisualization extends IVisualization { type: "CHORO"; source: IChoroSource; visualizations?: IChoroVisualization[]; color?: ChoroColor; } export declare function isChoroVisualization(viz: IAnyVisualization): viz is IChoroVisualization; export interface ITableVisualization extends IVisualization { type: "TABLE"; label: string[]; source: ITableSource; } export declare function isTableVisualization(viz: IAnyVisualization): viz is ITableVisualization; export interface ISliderVisualization extends IVisualization { type: "SLIDER"; source: ISliderSource; range?: number[]; } export declare function isSliderVisualization(viz: IAnyVisualization): viz is ISliderVisualization; export interface IIcon { [id: string]: string | number | boolean; } export type IValueMappings = { [key: string]: IIcon; }; export interface IVisualizationIcon { fieldid?: string; faChar?: string; valuemappings?: IValueMappings; } export interface IGraphVisualization extends IVisualization { type: "GRAPH"; source: IGraphSource; label: string[]; icon: IVisualizationIcon; flag: IVisualizationIcon[]; } export declare function isGraphVisualization(viz: IAnyVisualization): viz is IGraphVisualization; export interface IHeatMapVisualization extends IVisualization { type: "HEAT_MAP"; source: IHeatMapSource; } export declare function isHeatMapVisualization(viz: IAnyVisualization): viz is IHeatMapVisualization; export interface IFormVisualization extends IVisualization { type: "FORM"; } export declare function isFormVisualization(viz: IAnyVisualization): viz is IFormVisualization; export interface IDashboard { id?: string; title?: string; enable?: string; label?: string; primary?: boolean; visualizations: IAnyVisualization[]; } export interface IDDL { dashboards: IDashboard[]; datasources: IAnyDatasource[]; hipieversion: string; visualizationversion: string; } export type DDLSchema = IDDL; export type IAnyChoroMapping = IChoroUSStateMapping | IChoroUSCountyMapping | IChoroGeohashMapping; export declare function isUSStateMapping(mappings: IAnyChoroMapping): boolean; export declare function isUSCountyMapping(mappings: IAnyChoroMapping): boolean; export declare function isGeohashMapping(mappings: IAnyChoroMapping): boolean; export type IAnyMapping = IPieMapping | ILineMapping | IGraphMapping | IAnyChoroMapping | ITableMapping | IHeatMapMapping; export type IAnySource = IPieSource | ILineSource | ITableSource | IChoroSource | IGraphSource | IHeatMapSource; export type IAnyVisualization = IPieVisualization | ILineVisualization | ITableVisualization | IChoroVisualization | IGraphVisualization | IHeatMapVisualization | ISliderVisualization | IFormVisualization;