import type { ReactNode } from 'react'; import type { Unit } from '@dynatrace-sdk/units'; import type { TimeseriesChartConfiguration } from './timeseries-config.js'; import type { AriaLabelingProps } from '../../../../core/types/a11y-props.js'; import type { MaskingProps } from '../../../../core/types/masking-props.js'; import type { StylingProps } from '../../../../core/types/styling-props.js'; import type { TruncationMode } from '../../../../typography/text-ellipsis/TextEllipsis.js'; import type { PointsDisplay } from '../../../core/components/canvas/types/canvas-shape.js'; import type { ColorPalette, CustomColorPalette } from '../../../core/types/color-palette.js'; import type { TimeGapPolicy } from '../../../core/types/gap-policy.js'; import type { ZoomChangeHandler } from '../../../core/types/interactions.js'; import type { ValueRepresentation } from '../../../core/types/scales.js'; import type { SeriesActionsTemplate } from '../../../core/types/series-actions-template.js'; import type { DateThresholdConfig } from '../../../core/types/thresholds.js'; import type { SeriesCurve, Timeseries, TimeseriesDatapoint, TimeseriesUnit } from '../../../core/types/timeseries.js'; import type { ProgrammaticZoomHandlers } from '../../../core/types/zoom.js'; export type TimeseriesChartThresholdIndicatorProps = DateThresholdConfig; export type ResolvedTimeseriesChartConfig = TimeseriesChartConfiguration; export type TimeseriesSelectActions = (selectedSeries: Timeseries[], selectionDomain: [Date, Date]) => ReactNode | Promise; export declare const CHART_VARIANT_OPTIONS: readonly ["line", "area", "bar"]; export type ChartVariant = (typeof CHART_VARIANT_OPTIONS)[number]; export type ChartVariantInternal = ChartVariant | 'band'; export declare const DEFAULT_VARIANT: ChartVariant; export interface TimeseriesBandDataPoint { y0: number; y1: number; start: Date; end?: Date; } export type TimeseriesBand = { datapoints: TimeseriesBandDataPoint[]; name: string | string[]; unit?: TimeseriesUnit | string | Unit; }; export type TimeseriesSeriesActions = (timeseries: unknown, datapoint?: TimeseriesDatapoint | TimeseriesBandDataPoint) => SeriesActionsTemplate; export interface TimeseriesChartLineProps { data: Timeseries; valueRepresentation?: ValueRepresentation; color?: string; gapPolicy?: TimeGapPolicy; pointsDisplay?: PointsDisplay; } export interface TimeseriesChartAreaProps { data: Timeseries; valueRepresentation?: ValueRepresentation; color?: string; gapPolicy?: TimeGapPolicy; pointsDisplay?: PointsDisplay; } export interface TimeseriesChartBarProps { data: Timeseries; valueRepresentation?: ValueRepresentation; color?: string; } export interface TimeseriesChartBandProps { data: TimeseriesBand; color?: string; gapPolicy?: TimeGapPolicy; } export type TimeseriesChartProps = StylingProps & MaskingProps & AriaLabelingProps & { data?: Timeseries[]; variant?: ChartVariant; valueRepresentation?: ValueRepresentation; children?: ReactNode; loading?: boolean; height?: number | string; width?: number | string; colorPalette?: ColorPalette | CustomColorPalette; truncationMode?: TruncationMode; initialZoom?: Date[] | number[]; currentZoom?: Date[] | number[]; onZoomChange?: ZoomChangeHandler; infiniteZoom?: boolean; seriesActions?: TimeseriesSeriesActions; /** The gap policy to be applied to all series of the chart */ gapPolicy?: TimeGapPolicy; /** * Show the datapoints always, never or based on a threshold amount. * @defaultValue 'auto' */ pointsDisplay?: PointsDisplay; /** Defines the curve shape of line and area series. @defaultValue 'linear' */ curve?: SeriesCurve; }; export interface TimeseriesChartRef extends ProgrammaticZoomHandlers { element: HTMLDivElement | null; getConfig: () => string; downloadData: () => void; } //# sourceMappingURL=timeseries.d.ts.map