import { FilterEngine } from './filter-engine';
import { FilterStateManager } from './filter-state-manager';
import { FilterToolbar } from './filter-toolbar';
import type { FilterOptions, FilterState } from './types';
import type { pluginsDefinition, ListTable, PivotTable, ColumnDefine } from '@visactor/vtable';
export declare class FilterPlugin implements pluginsDefinition.IVTablePlugin {
    id: string;
    name: string;
    runTime: ("icon_click" | "before_init" | "before_update_option")[];
    pluginOptions: FilterOptions;
    table: ListTable | PivotTable;
    filterEngine: FilterEngine;
    filterStateManager: FilterStateManager;
    filterToolbar: FilterToolbar;
    constructor(pluginOptions: FilterOptions);
    run(...args: any[]): void;
    update(): void;
    private handleOptionUpdate;
    private reapplyActiveFilters;
    private validateFilterStatesAfterUpdate;
    private updateFilterIcons;
    shouldEnableFilterForColumn(field: number | string, column: ColumnDefine): boolean;
    getFilterState(): any;
    setFilterState(filterState: FilterState): void;
    release(): void;
}
