import { HighlightState, ZoomWindow } from '../../shared/kernel'; import { Switchable } from '../../shared/options'; export interface SyncOptions extends Switchable { /** Charts sharing a groupId are synchronized (a common group by default). */ groupId?: string; /** Synchronize node highlighting (true by default). */ nodeInteraction?: boolean; /** Synchronize zoom (true by default). */ zoom?: boolean; } export interface SyncMember { /** Highlight coming from a neighboring chart (by data index). */ onRemoteHighlight(highlight: HighlightState | undefined): void; /** Zoom window coming from a neighboring chart. */ onRemoteZoom(window: ZoomWindow): void; } export declare function joinSyncGroup(groupId: string, member: SyncMember): () => void; export declare function broadcastHighlight(groupId: string, from: SyncMember, highlight: HighlightState | undefined): void; export declare function broadcastZoom(groupId: string, from: SyncMember, window: ZoomWindow): void; /** Feature API for widgets (via registry.getFeature('sync')). */ export declare const syncApi: { joinSyncGroup: typeof joinSyncGroup; broadcastHighlight: typeof broadcastHighlight; broadcastZoom: typeof broadcastZoom; }; export type SyncApi = typeof syncApi; export declare const syncModule: { readonly kind: "feature"; readonly name: "sync"; readonly api: { joinSyncGroup: typeof joinSyncGroup; broadcastHighlight: typeof broadcastHighlight; broadcastZoom: typeof broadcastZoom; }; };