import { Filter } from '../model';
import { Experiments, ReportBI } from '../services';
import { MultiCollectionSupport } from './MultiCollectionSupport';
import { ConditionalModalState } from './ConditionalModalState';
import { QueryPendingStateBIReporter } from './QueryPendingStateBIReporter';
interface ToolbarFiltersState {
    readonly panelFilters: (Filter<any> | null | undefined)[];
}
export interface QueryPendingStateParams {
    container: {
        experiments: Experiments;
    };
    toolbar: {
        multi: MultiCollectionSupport<{}>;
        toolbarFiltersState?: ToolbarFiltersState | null;
        reportBi: ReportBI;
    };
}
export declare class QueryPendingState {
    readonly filters: {
        origin: Filter<any>;
        pending: Filter<any>;
    }[];
    readonly container: {
        experiments: Experiments;
    };
    readonly toolbar: {
        multi: MultiCollectionSupport<{}>;
        toolbarFiltersState?: ToolbarFiltersState | null | undefined;
        reportBi: ReportBI;
    };
    readonly discardChangesModal: ConditionalModalState<null>;
    readonly bi: QueryPendingStateBIReporter;
    get multi(): MultiCollectionSupport<{}>;
    get toolbarFiltersState(): ToolbarFiltersState | null | undefined;
    constructor(params: QueryPendingStateParams);
    get trackedFilters(): {
        origin: Filter<any>;
        pending: Filter<any>;
    }[];
    get trackedFiltersCount(): number;
    shouldTrackFilter: () => ({ origin }: {
        origin: Filter<any>;
    }) => boolean | undefined;
    onCloseFiltersPanelClick(): Promise<"dismissed" | "confirmed" | "declined" | undefined>;
    getApplicableFilter<A>(filter: A): Filter<any> | A;
    revert(): void;
    apply(): void;
    get hasChanged(): boolean;
    clearSelected(): Promise<void>;
    init(): () => void;
}
export {};
//# sourceMappingURL=QueryPendingState.d.ts.map