import type { ListTable, PivotTable } from '@visactor/vtable';
import type { FilterState, FilterAction, FilterConfig, FilterListener, FilterStateSnapshot } from './types';
import { FilterActionType } 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;
    getSnapshot(): FilterStateSnapshot;
    applySnapshot(snapshot: FilterStateSnapshot, actionType?: FilterActionType): void;
    shiftFieldsOnAddColumns(columnIndex: number, columnCount: number): void;
    shiftFieldsOnDeleteColumns(deleteColIndexs: number[]): void;
    reapplyCurrentFilters(): void;
    dispatch(action: FilterAction): void;
    subscribe(listener: FilterListener): () => void;
    private notifyListeners;
    private reduce;
    private applyFilters;
    private shouldApplyFilter;
}
