import type { Cursor, Hooks, Options } from 'uplot';
import type uPlot from 'uplot';
import type { SeriesSpanGapsOption } from '../dataUtils';
import type { ThresholdsDrawHookOptions } from '../hooks/types';
import type { ConfigBuilderProps, LegendItem } from './types';
import type { AxisProps } from './UPlotAxisBuilder';
import type { ScaleProps } from './UPlotScaleBuilder';
import type { SeriesProps } from './UPlotSeriesBuilder';
import { ConfigBuilder } from './types';
import { UPlotScaleBuilder } from './UPlotScaleBuilder';
import { UPlotSeriesBuilder } from './UPlotSeriesBuilder';
interface LegendConfig {
    show?: boolean;
    live?: boolean;
    isolate?: boolean;
    [key: string]: unknown;
}
export declare class UPlotConfigBuilder extends ConfigBuilder<ConfigBuilderProps, Partial<Options>> {
    series: UPlotSeriesBuilder[];
    private selectionPreferencesSource;
    private shouldSaveSelectionPreference;
    private axes;
    private stepInterval;
    readonly scales: UPlotScaleBuilder[];
    private bands;
    private cursor;
    private hooks;
    private plugins;
    private padding;
    private legend;
    private focus;
    private select;
    private thresholds;
    private tzDate;
    private id;
    private onDragSelect;
    constructor(args: ConfigBuilderProps);
    getShouldSaveSelectionPreference(): boolean;
    getId(): string;
    addAxis(props: AxisProps): void;
    addScale(props: ScaleProps): void;
    addSeries(props: SeriesProps): void;
    getSeriesSpanGapsOptions(): SeriesSpanGapsOption[];
    addHook<T extends keyof Hooks.Defs>(type: T, hook: Hooks.Defs[T]): () => void;
    addPlugin(plugin: uPlot.Plugin): void;
    addThresholds(options: ThresholdsDrawHookOptions): void;
    setBands(bands: uPlot.Band[]): void;
    setCursor(cursor: Cursor): void;
    setPadding(padding: [number, number, number, number]): void;
    setLegend(legend: LegendConfig): void;
    setFocus(focus: uPlot.Focus): void;
    setSelect(select: uPlot.Select): void;
    setTzDate(tzDate: (timestamp: number) => Date): void;
    getCursorConfig(): Cursor;
    private getStoredVisibility;
    private getVisibilityResolutionState;
    getLegendItems(): Record<number, LegendItem>;
    getConfig(): Partial<Options>;
}
export {};
