import { LogicalQuery } from '../types/workbook';
import { FilterResultItem } from '../utils/semantic-sql-engine';
import { Report } from '../types/report';
import { TableColumn, TablePivot } from '../types/table';
import { ChartColumn } from '../types/chart';

export interface UseReportProps {
    report: Report | null | undefined;
    onReportUpdate: (options: Partial<Report>) => void;
    isAutoRunEnabled?: boolean;
}
export interface UseReportReturn {
    report: Report | null | undefined;
    updateLogicalQueryAndRunQuery: (logicalQueryUpdates: Partial<LogicalQuery>, shouldRunQuery?: boolean) => void;
    onReportUpdate: (options: Partial<Report>) => void;
    updateReport: (options: Partial<Report>) => void;
    runQuery: (sqlQuery?: string | null, forceRefresh?: boolean) => void;
    fetchReportQuery: (options: {
        sqlQuery: string;
        signal?: AbortSignal;
        cacheMode?: any;
    }) => Promise<any>;
    tableData: {
        data: any;
        columns: TableColumn[];
        pivots?: TablePivot[];
    } | null;
    chartColumns: ChartColumn[] | undefined;
    newFilter: FilterResultItem | null;
    setNewFilter: (filter: FilterResultItem | null) => void;
    handleAddFilter: (filter: FilterResultItem) => void;
    addFilterForColumn: (columnId: string) => void;
    removeFilterByIndexPath: (indexPath: number[]) => void;
    removeFilterByColumnId: (columnId: string) => void;
    handleFilterChange: (filterIndex: number[], newFilter: FilterResultItem) => void;
    isAdvancedSqlMode: boolean;
    isAutoRunEnabled: boolean;
    clearReport: () => void;
    setSelectedSemanticView: (viewId: string | null) => void;
    selectedSemanticView: string | null;
}
export declare function useReport({ report, onReportUpdate, isAutoRunEnabled, }: UseReportProps): UseReportReturn;
//# sourceMappingURL=use-report.d.ts.map