import type { ListTable, PivotTable } from '@visactor/vtable';
import type { FilterConfig, FilterStyles, FilterOptions } from './types';
import type { FilterStateManager } from './filter-state-manager';
export declare class ValueFilter {
    private table;
    private filterStateManager;
    private pluginOptions;
    private styles;
    private uniqueKeys;
    private displayToRawValueMap;
    private selectedField;
    private valueFilterOptionList;
    private filterByValuePanel;
    private searchContainer;
    private optionsContainer;
    private selectAllItemDiv;
    private selectAllLabel;
    private filterByValueSearchInput;
    private selectAllCheckbox;
    private filterItemsContainer;
    constructor(table: ListTable | PivotTable, filterStateManager: FilterStateManager, pluginOptions: FilterOptions);
    updateUI(filterState: FilterConfig): void;
    setSelectedField(fieldId: string | number): void;
    collectUniqueColumnValues(fieldId: string | number, forceCollect?: boolean): void;
    private updateCandidateCounts;
    private onValueSelect;
    private isValueVisible;
    private toggleSelectAll;
    private onSearch;
    private initFilterStateFromTableData;
    private syncCheckboxesWithFilterState;
    private syncSelectAllWithFilterState;
    applyFilter(fieldId?: string | number): void;
    clearFilter(fieldId: string | number): void;
    render(container: HTMLElement): void;
    updatePluginOptions(pluginOptions: FilterOptions): void;
    updateStyles(styles: FilterStyles): void;
    private renderFilterOptions;
    bindEventForFilterByValue(): void;
    updateCheckboxUI(field: string | number): void;
    updateCheckboxState(field: string | number): void;
    show(): void;
    hide(): void;
    clearSearchInputValue(): void;
}
