import { VisualizationObject } from "@gooddata/typings"; export interface ISchemaVisualizationAttribute { localIdentifier: string; displayForm: string; alias?: string; } export declare type ISchemaBucketItem = ISchemaVisualizationAttribute | ISchemaMeasure; export interface ISchemaMeasureBase { localIdentifier: string; identifier?: string; alias?: string; title?: string; format?: string; filters?: ISchemaFilter[]; computeRatio?: boolean; aggregation?: "sum" | "count" | "avg" | "min" | "max" | "median" | "runsum"; isDerived?: boolean; isArithmetic?: boolean; } export interface ISchemaDerivedMeasure extends ISchemaMeasureBase { isDerived: true; measureIdentifier?: string; popAttribute?: string; previousPeriod?: IPreviousPeriod; } export interface ISchemaArithmeticMeasure extends ISchemaMeasureBase { isArithmetic: true; operator: "sum" | "difference" | "multiplication" | "ratio" | "change"; measureIdentifiers: string[]; } export declare type ISchemaMeasure = ISchemaMeasureBase | ISchemaDerivedMeasure | ISchemaArithmeticMeasure; export interface IPreviousPeriod { dateDataSets?: IPreviousPeriodDateDataSet[]; } export interface IPreviousPeriodDateDataSet { dataSet: string; periodsAgo: number; } export interface ISchemaTotal { type: "sum" | "avg" | "max" | "min" | "nat" | "med"; measureIdentifier: string; attributeIdentifier: string; } export interface ISchemaBucket { localIdentifier?: string; items: ISchemaBucketItem[]; totals?: ISchemaTotal[]; } export interface ISchemaFilter { type: "attribute" | "date" | "measureComparison" | "measureRange" | "ranking"; identifier: string; relative?: boolean; from?: number | string; to?: number | string; granularity?: string; dataset?: string; negative?: boolean; elements?: number[]; operator?: VisualizationObject.ComparisonConditionOperator | VisualizationObject.RangeConditionOperator | "TOP" | "BOTTOM"; value?: number; treatNullValuesAs?: number; attributes?: string[]; } export interface ISchemaVisualizationObject { type: string; buckets?: ISchemaBucket[]; filters?: ISchemaFilter[]; properties?: any; title: string; author?: string; identifier?: string; }