import { ReactNode } from 'react';
import { ChartColumn, ChartCategory, TableChartSpec, KpiChartSpec, HtmlChartSpec, MapChartSpec } from '../types/chart';
import { TablePivot } from '../types/table';
import { VegaChartTemplateType } from '../types/vega-types';

interface ChartBuilderContextValue {
    activeReport: any;
    updateReportLocally: (reportId: number, update: any) => void;
    chartColumns: ChartColumn[];
    tableData?: {
        data: any;
        columns: any;
        pivots?: TablePivot[];
    } | null;
    updateChartCategory: (chartCategory: ChartCategory) => void;
    currentChartCategory?: ChartCategory;
    tableChartSpec: TableChartSpec;
    updateTableChartSpec: (update: Partial<TableChartSpec>) => void;
    kpiChartSpec: KpiChartSpec;
    updateKpiChartSpec: (update: Partial<KpiChartSpec>) => void;
    htmlChartSpec: HtmlChartSpec;
    updateHtmlChartSpec: (update: Partial<HtmlChartSpec>) => void;
    mapChartSpec: MapChartSpec;
    updateMapChartSpec: (update: Partial<MapChartSpec>) => void;
    applyChartTemplate: (chartCategory: ChartCategory, spec?: VegaChartTemplateType) => void;
}
export declare const useChartBuilderContext: <Selected = ChartBuilderContextValue>(selector?: ((value: ChartBuilderContextValue) => Selected) | undefined, eqlFn?: import('../utils').EqualityFn<Selected> | undefined) => Selected, ChartBuilderContext: import('use-context-selector').Context<ChartBuilderContextValue>;
interface ChartBuilderProviderProps {
    children: ReactNode;
}
export declare function ChartBuilderProvider({ children }: ChartBuilderProviderProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=ChartBuilderProvider.d.ts.map