import React from 'react';
import uPlot, { AlignedData } from 'uplot';
import { XAxisDomain } from '../../kit/internal/types';
type Bounds = {
    dataBounds: {
        max: number;
        min: number;
    } | null;
    unzoomedBounds: {
        max: number;
        min: number;
    } | null;
    zoomBounds: {
        max: number;
        min: number;
    } | null;
};
declare class SyncService {
    axis: XAxisDomain | undefined;
    bounds: import("micro-observables").WritableObservable<Bounds>;
    pubSub: uPlot.SyncPubSub;
    activeBounds: import("micro-observables").Observable<{
        max: number;
        min: number;
    } | null>;
    key: string;
    xRange?: Record<XAxisDomain, [number, number] | undefined>;
    constructor(syncKey?: string, xRange?: Record<XAxisDomain, [number, number] | undefined>);
    syncChart(chart: uPlot): void;
    resetZoom(): void;
    setZoom(min: number, max: number): void;
    updateDataBounds(data: AlignedData, axis?: XAxisDomain): void;
}
interface Props {
    children: React.ReactNode;
    syncKey?: string;
    xRange?: Record<XAxisDomain, [number, number] | undefined>;
}
export declare const SyncProvider: React.FC<Props>;
export declare const useChartSync: () => {
    options: Partial<uPlot.Options>;
    syncService: SyncService;
};
export {};
//# sourceMappingURL=SyncProvider.d.ts.map