import type { Series } from 'uplot';
import type uPlot from 'uplot';
export declare abstract class ConfigBuilder<P, T> {
    props: P;
    constructor(props: P);
    abstract getConfig(): T;
    merge?(props: Partial<P>): void;
}
export declare enum SelectionPreferencesSource {
    LOCAL_STORAGE = "LOCAL_STORAGE",
    IN_MEMORY = "IN_MEMORY"
}
export interface ConfigBuilderProps {
    id: string;
    onDragSelect?: (startTime: number, endTime: number) => void;
    tzDate?: uPlot.LocalDateFromUnix;
    selectionPreferencesSource?: SelectionPreferencesSource;
    shouldSaveSelectionPreference?: boolean;
    stepInterval?: number;
}
export declare enum DistributionType {
    Linear = "linear",
    Logarithmic = "logarithmic",
    Symlog = "symlog"
}
export declare enum DrawStyle {
    Lines = "lines",
    Bars = "bars",
    Points = "points",
    Histogram = "histogram"
}
export declare enum LineInterpolation {
    Linear = "linear",
    Smooth = "smooth",
    StepBefore = "stepBefore",
    StepAfter = "stepAfter"
}
export declare enum LineStyle {
    Solid = "solid",
    Dashed = "dashed",
    Dotted = "dotted"
}
export declare enum FillMode {
    None = "none",
    Solid = "solid",
    Gradient = "gradient"
}
export declare enum BarAlignment {
    Before = -1,
    Center = 0,
    After = 1
}
export interface AxisProps {
    scaleKey: string;
    label?: string;
    show?: boolean;
    side?: 0 | 1 | 2 | 3;
    stroke?: string;
    grid?: {
        stroke?: string;
        width?: number;
        show?: boolean;
    };
    ticks?: {
        stroke?: string;
        width?: number;
        show?: boolean;
        size?: number;
    };
    border?: {
        show?: boolean;
        stroke?: string;
        width?: number;
    };
    values?: uPlot.Axis.Values;
    gap?: number;
    size?: uPlot.Axis.Size;
    formatValue?: (v: number) => string;
    space?: number;
    isDarkMode?: boolean;
    isLogScale?: boolean;
    isTimeAxis?: boolean;
    yAxisUnit?: string;
    decimalPrecision?: number;
}
export interface ScaleProps {
    scaleKey: string;
    time?: boolean;
    min?: number;
    max?: number;
    softMin?: number;
    softMax?: number;
    range?: uPlot.Range.MinMax | ((u: uPlot, min: number, max: number) => uPlot.Range.MinMax);
    distribution?: DistributionType;
    logBase?: number;
    padMinBy?: number;
    padMaxBy?: number;
    auto?: boolean;
    thresholds?: {
        thresholds: import('../hooks/types').Threshold[];
        yAxisUnit?: string;
    };
}
export interface SeriesProps {
    scaleKey?: string;
    label?: string;
    show?: boolean;
    colorMapping?: Record<string, string>;
    lineColor?: string;
    isDarkMode?: boolean;
    drawStyle?: DrawStyle;
    lineInterpolation?: LineInterpolation;
    lineStyle?: LineStyle;
    fillMode?: FillMode;
    fillOpacity?: number;
    fillColor?: string;
    lineWidth?: number;
    pointSize?: number;
    showPoints?: boolean;
    barAlignment?: BarAlignment;
    barMaxWidth?: number;
    barWidthFactor?: number;
    stepInterval?: number;
    pathBuilder?: Series.PathBuilder;
    pointsBuilder?: Series.Points.Show;
    pointsFilter?: Series.Points.Filter;
    spanGaps?: number | boolean;
    lineCap?: CanvasLineCap;
    color?: string;
    metric?: Record<string, string>;
}
export type ExtendedSeries = Series & {
    metric?: Record<string, string>;
};
export interface LegendItem {
    seriesIndex: number;
    label: string;
    color: string;
    show: boolean;
    yAxis: number;
}
