import { ECharts } from 'echarts'; import { AstroChartHandle } from './AstroChart'; interface SyncGroupOptions { /** Sync tooltip position */ tooltip?: boolean; /** Sync crosshair */ crosshair?: boolean; /** Sync zoom/pan */ zoom?: boolean; /** Sync legend selection */ legend?: boolean; } export interface UseChartSyncOptions extends SyncGroupOptions { /** Sync group ID */ groupId: string; /** Whether sync is enabled */ enabled?: boolean; } /** * Hook to synchronize a chart with other charts in the same group * * @example * ```tsx * const chartRef = useRef(null); * useChartSync(chartRef, { groupId: 'dashboard-charts' }); * ``` */ export declare function useChartSync(chartRef: React.RefObject, options: UseChartSyncOptions): void; /** * Dispatch action to all charts in a group */ export declare function dispatchToGroup(groupId: string, action: Parameters[0]): void; /** * Sync zoom range across all charts in a group */ export declare function syncZoomRange(groupId: string, start: number, end: number): void; /** * Reset zoom for all charts in a group */ export declare function resetGroupZoom(groupId: string): void; /** * Show tooltip at specific data index for all charts */ export declare function showGroupTooltip(groupId: string, seriesIndex: number, dataIndex: number): void; /** * Hide tooltip for all charts in a group */ export declare function hideGroupTooltip(groupId: string): void; /** * Get all chart instances in a group */ export declare function getGroupCharts(groupId: string): ECharts[]; /** * Export all charts in a group as images */ export declare function exportGroupAsImages(groupId: string, options?: { type?: "png" | "svg"; pixelRatio?: number; fileName?: string; }): string[]; /** * Export all charts in a group as a combined CSV */ export declare function exportGroupAsCSV(groupId: string, options?: { fileName?: string; includeHeaders?: boolean; }): string; export {};