import { ITimeFramePresetDictionary, UnitOption } from "@nova-ui/bits"; import { TimeseriesZoomPlugin, ZoomPlugin } from "@nova-ui/charts"; import { IProperties } from "../../types"; import { LegendPlacement } from "../../widget-types/common/widget/legend"; export interface ITimeseriesWidgetConfig { interaction: null | "series" | "dataPoints"; displayedSeries: ITimeseriesWidgetSeries[]; legendPlacement: LegendPlacement; leftAxisLabel?: string; timeFramePickerPresets?: ITimeFramePresetDictionary; enableZoom: boolean; chartColors?: string[]; preset: TimeseriesChartPreset; scales: ITimeseriesScalesConfig; units: UnitOption; collectionId?: string; leftYAxisUnits?: UnitOption; rightYAxisUnits?: UnitOption; gridConfig?: { [key: string]: any; }; hasAdjacentChart?: boolean; groupUniqueId?: string; allowLegendMenu?: boolean; metricIds?: string; realTimeIds?: string[]; type?: number; projectType?: TimeseriesWidgetProjectType; } export interface ITimeseriesWidgetSeries { id: string; label: string; selectedSeriesId: string; } export interface ITimeseriesWidgetData { id: string; name: string; description: string; data: T[]; rawData?: T[]; transformer?: (data: T[], hasPercentile?: boolean) => T[]; link?: string; secondaryLink?: string; metricUnits?: UnitOption; } export interface ITimeseriesWidgetSeriesData { x: any; y: any; [key: string]: any; } export interface ITimeseriesWidgetStatusData extends ITimeseriesWidgetSeriesData { thick?: boolean; color?: string; icon?: string; } export interface ITimeseriesOutput { series: ITimeseriesWidgetData[]; summarySerie?: ITimeseriesWidgetData; } export declare enum TimeseriesInteractionType { DataPoints = "dataPoints", Series = "series", Values = "values" } /** Configuration for a chart preset */ export interface IChartPreset { componentType: string; } /** * Configuration of scales for a x/y chart */ export interface ITimeseriesScalesConfig { x: ITimeseriesScaleConfig; y: ITimeseriesScaleConfig; yRight?: ITimeseriesScaleConfig; } /** * Configuration of a scale for timeseries widget */ export interface ITimeseriesScaleConfig { /** Type of the scale */ type: TimeseriesScaleType; /** Additional properties of the scale */ properties?: IProperties; } /** * List of supported scale types for the timeseries widget */ export declare enum TimeseriesScaleType { /** Continous time scale */ Time = "time", /** Time interval scale */ TimeInterval = "timeInterval", /** Numeric linear scale */ Linear = "linear" } /** Enumeration of chart presets supported by the timeseries widget */ export declare enum TimeseriesChartPreset { Line = "line", StackedArea = "stackedArea", StackedPercentageArea = "stackedPercentageArea", StackedBar = "stackedBar", StatusBar = "statusBar" } /** Enumeration of timeseries chart types recieved from the backend */ export declare enum TimeseriesChartTypes { line = 1, counter = 2, event = 3, alert = 4, status = 5, multi = 6, dpaWaitTime = 7 } export declare enum TimeseriesTransformer { None = "none", Normalize = "normalize", ChangePoint = "changePoint", Difference = "difference", Linear = "linear", PercentileStd = "percentileStd", Smoothing = "smoothing", LoessStandardize = "loessStandardize", Standardize = "standardize", FloatingAverage = "floatingAverage" } export declare enum TimeseriesWidgetProjectType { ModernDashboard = 0, PerfstackApp = 1 } export type TimeseriesWidgetZoomPlugin = TimeseriesZoomPlugin | ZoomPlugin;