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; }