import type { ListTable, PivotTable } from '@visactor/vtable';
import type { FilterOptions, FilterStyles } from './types';
import type { FilterStateManager } from './filter-state-manager';
export declare class ValueFilter {
    private table;
    private filterStateManager;
    private pluginOptions;
    private styles;
    private selectedField;
    private selectedKeys;
    private candidateKeys;
    private formatFnCache;
    private toUnformattedCache;
    private valueFilterOptionList;
    private filterByValuePanel;
    private searchContainer;
    private optionsContainer;
    private selectAllItemDiv;
    private selectAllLabel;
    private filterByValueSearchInput;
    private selectAllCheckbox;
    private totalCountSpan;
    private filterItemsContainer;
    private _onInputKeyUpHandler;
    private _onCheckboxChangeHandler;
    constructor(table: ListTable | PivotTable, filterStateManager: FilterStateManager, pluginOptions: FilterOptions);
    setSelectedField(fieldId: string | number): void;
    private getFormatFnCache;
    private collectCandidateKeysForUnfilteredColumn;
    update(): void;
    private collectCandidateKeysForFilteredColumn;
    private toggleSelectAll;
    private syncSelectAllCheckbox;
    private onSearch;
    private initFilterStateFromTableData;
    applyFilter(fieldId?: string | number): void;
    clearFilter(fieldId: string | number): void;
    render(container: HTMLElement): void;
    updateStyles(styles: FilterStyles): void;
    private renderFilterOptions;
    private bindEventForFilterByValue;
    show(): void;
    hide(): void;
    clearSearchInputValue(): void;
    destroy(): void;
}
