import { B as BrushRange$1 } from './useEChartsInteraction-BkrSAqYb.js'; import { ReactNode, ReactElement } from 'react'; type BrushRange = { start: number; end: number; }; type ChartSyncState = { index: number | null; sourceId: string | null; brushRange: BrushRange | null; brushSourceId: string | null; }; type ChartSyncContextValue = ChartSyncState & { publish: (index: number | null, sourceId: string) => void; publishBrushRange: (range: BrushRange | null, sourceId: string) => void; }; declare function ChartSyncGroup({ children, }: { children: ReactNode; }): ReactElement; declare function useOptionalChartSync(): ChartSyncContextValue | null; declare function useChartSync(): ChartSyncContextValue; /** * Resolves the brush range a panel should follow from ChartSyncGroup. * * Semantics: * - Leaders (`brush: true`) publish via `publishBrushRange` and do not follow. * - Followers mirror the active leader range unless `syncFollower` pins a leader id. * - Multiple leaders: last `publishBrushRange` wins (same as cursor `publish`). * - Panels never follow their own `syncId`. * - Empty or degenerate published ranges are ignored (followers show full data). */ declare function resolveFollowerBrushRange(sync: ChartSyncContextValue | null, syncId: string | undefined, syncFollower?: string): BrushRange$1 | null; export { ChartSyncGroup as C, useOptionalChartSync as a, resolveFollowerBrushRange as r, useChartSync as u };