import type { ListTable, PivotTable } from '@visactor/vtable';
import type { FilterState, FilterAction, FilterConfig } from './types';
import type { FilterEngine } from './filter-engine';
export declare class FilterStateManager {
    private state;
    private engine;
    private listeners;
    private table;
    constructor(table: ListTable | PivotTable, engine: FilterEngine);
    getFilterState(fieldId?: string | number): FilterConfig;
    getActiveFilterFields(): (string | number)[];
    getAllFilterStates(): FilterState;
    reapplyCurrentFilters(): void;
    dispatch(action: FilterAction): void;
    subscribe(listener: (state: FilterState) => void): () => void;
    private notifyListeners;
    private reduce;
    private applyFilters;
    private shouldApplyFilter;
}
