import React from 'react';
import { LocaleInfo } from './utilities/formatTimestamp';
import { EventAnnotation, EventAnnotationConfig } from './EventAnnotations';
import { Legend } from './Legends';
import { Tooltip } from './Tooltips';
import { Range } from './providers/RangeSelectionProvider';
import type { PlotUtilitiesFn } from './renderers/types';
import { VizThemeKey } from './theme';
import type { AxisRange, GenericDataSet, MarkAnnotation, ScaleConfig, SeriesConfig, TimestampFormat } from './types';
export type CrosshairValue = {
    time: number;
    seriesKey?: string;
};
export type CrosshairClickEvent = {
    time: number;
    index: number;
    seriesIndex: number;
    originalEvent: MouseEvent;
    seriesKey: string;
    value?: number;
};
export type CrosshairClickEventWResolution = CrosshairClickEvent & {
    xResolution: number;
};
export type PlotDimensions = {
    root: DOMRect;
    over: DOMRect;
};
export type InternalTimeSeriesChartProps = {
    id?: string;
    width: number | string;
    height: number | string;
    loading?: boolean;
    data: GenericDataSet;
    seriesConfig?: SeriesConfig;
    scaleConfig?: ScaleConfig;
    hideXAxis?: true;
    hideTooltipSeriesLabel?: boolean;
    legend?: false | Legend;
    tooltip?: false | Tooltip;
    /**
     * Display tooltip values outside chart instead of displaying on chart.
     * If set to true, tooltip prop is overridden.
     */
    showTooltipOutsideChart?: boolean;
    onSeriesClick?: (field: string, anchorRef: React.Ref<HTMLElement>) => void;
    events?: EventAnnotation[];
    eventsConfig?: EventAnnotationConfig;
    marks?: MarkAnnotation[];
    /**
     * Callback that triggers when the chart is initialized.
     *
     * The is a workaround for 1 specific team, olly, and should not be relied on.
     */
    onReady?: (utils?: PlotUtilitiesFn, uplotRef?: uPlot) => void;
    onCrosshairChange?: (crosshairValue?: CrosshairValue) => void;
    onCrosshairClick?: (event: CrosshairClickEventWResolution) => void;
    onPinClose?: () => void;
    onRangeSelection?: (range: Range | undefined, e: MouseEvent) => void;
    onRangeZoom?: (range: Range, e: MouseEvent) => void;
    title?: string;
    userLocale?: LocaleInfo;
    range?: AxisRange;
    /** Toggles the visibility of a given series when it is clicked in the legend.
     * Note: if this is `true` `onSeriesClick` will not be called */
    legendClickTogglesSeriesVisibility?: boolean;
    /** Maximum number of series that still allows for "closest series focus" functionality to be enabled.
     * defaults to FOCUS_MAX_SERIES (30)
     */
    maxSeriesFocus?: number;
    /** * X-axis timeseries label format - compact(one-line), expanded (multi-line)
     * defaults to compact
     */
    timestampFormat?: TimestampFormat;
};
export type TimeSeriesChartProps = InternalTimeSeriesChartProps & {
    theme?: VizThemeKey;
};
export declare const TimeSeriesChart: React.FC<TimeSeriesChartProps>;
