import { IMetadataObject } from "./MetadataObject"; export declare type SortDirection = "asc" | "desc"; export declare type EmbeddedFilters = IEmbeddedDateFilter | IEmbeddedListAttributeFilter; export interface IEmbeddedDateFilter { dateFilter: { type: "relative" | "absolute"; from?: string | number; to?: string | number; granularity: string; attribute: string; dataset?: string; dimension?: string; }; } export interface IEmbeddedListAttributeFilter { listAttributeFilter: { attribute: string; displayForm: string; default: { negativeSelection: boolean; attributeElements: string[]; }; }; } export interface IMeasureSort { direction: SortDirection; sortByPoP: boolean; } export interface IVisualizationStyle { visualizationStyle: { type: "common" | "table" | "line" | "column" | "bar" | "pie"; colorPalette: { measure?: { color: string; periodOverPeriod: string; }; stack?: any; }; }; } export interface IMeasure { measure: { type: "metric" | "fact" | "attribute"; aggregation?: "sum" | "count" | "avg" | "min" | "max" | "median" | "runsum"; objectUri: string; showInPercent: boolean; showPoP: boolean; title: string; measureFilters: EmbeddedFilters[]; format?: string; sort?: IMeasureSort; styles?: IVisualizationStyle[]; }; } export interface ICategory { category: { type: "attribute" | "date"; collection: CategoryCollection; displayForm: string; attribute?: string; sort?: SortDirection; styles?: IVisualizationStyle[]; }; } export declare type CategoryCollection = "attribute" | "stack" | "view" | "trend" | "segment"; export interface IVisualization extends IMetadataObject { content: { type: "table" | "line" | "column" | "bar" | "pie"; buckets: { measures: IMeasure[]; categories: ICategory[]; filters: EmbeddedFilters[]; }; }; } export interface IWrappedVisualization { visualization: IVisualization; } export declare function isVisualization(object: IMetadataObject): object is IVisualization;