import { QueryEngineConfig, QueryEngineEndpoint } from '../../shared-logic/src/QueryEngineConfig/types';
import { DataSet, DataSet as DataSetType } from '../../shared-logic/src/DataSet/types';
import { TimeRangeOptions, FilterConfig } from '../../shared-logic/src/AdditionalFilter/types';
import { loadDataCallback } from '../../shared-logic/src/Callbacks/types';
import { Query } from '../../shared-logic/src/Query/types';
import { Result } from '../../shared-logic/src/Result/types';
import { VariableList } from '../../shared-logic/src/Variables/types';
import { AliasFields } from '../../shared-logic/src/AliasFields/types';
export declare type VizzlyQueryEngineDriver = {
    type: 'vizzlyQueryEngine';
    queryEngineConfig: QueryEngineConfig;
    queryEngineEndpoint: QueryEngineEndpoint;
    dataAccessToken: string;
    cacheKeyNamespace: string;
};
export declare type CustomDriver = {
    type: 'custom';
    queryEngineConfig: QueryEngineConfig;
    dataAccessToken?: string;
    cacheKeyNamespace: string;
    runQueries: (queries: Query[], params: {
        dataSets: DataSet[];
        abortSignal?: AbortSignal;
        dataAccessToken?: string;
        filterConfig?: FilterConfig;
    }) => Promise<Array<Result | Result['content'] | null> | null>;
};
export declare type VizzlyJsQueryEngineDriver = {
    type: 'vizzlyJsQueryEngine';
    loadData: loadDataCallback;
    cacheKeyNamespace: string;
};
export declare type Driver = VizzlyQueryEngineDriver | VizzlyJsQueryEngineDriver | CustomDriver;
export declare type Params = {
    dataSets: Array<DataSetType>;
    filterConfig: FilterConfig;
    abortSignal?: AbortSignal;
    timeRangeOptions: TimeRangeOptions;
    timeZone?: string;
    variables: VariableList;
    aliasFields: AliasFields;
    hiddenDashboardFilters?: (dataSet: DataSetType) => Query['filter'];
};
