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