import { DataFetcher } from './data-fetcher.js'; export interface InteractionConfig { drillDown?: string; linkTo?: string; onClick?: string; filterBy?: string | string[]; } interface DrillFrame { chartId: string; label: string; templateSQL: string; datum: Record; predicates: Record; connectionId?: string; } export interface InteractionState { crossFilters: Record>; drillStack: DrillFrame[]; } export interface InteractionManagerOptions { onStateChange?: (state: InteractionState) => void; } export declare class InteractionManager { private vegaViews; private fetcher; private crossFilterState; private drillStack; private onStateChange?; constructor(fetcher: DataFetcher, options?: InteractionManagerOptions); registerView(chartId: string, view: any): void; getView(chartId: string): any; getState(): InteractionState; getCrossFilters(): Record>; getDrillStack(): DrillFrame[]; setupChartInteractions(chartId: string, view: any, interaction: InteractionConfig, _data: unknown[]): void; drillUp(): Promise; private handleDrillDown; private fetchDrillDown; private renderDrillTable; private handleLinkTo; private handleOnClick; private setupFilterByInteraction; private applyCrossChartFilter; private buildPredicates; private resolveChartConnection; private emitStateChange; } export {}; //# sourceMappingURL=interactions.d.ts.map