import { type ListTable, type PivotTable } from '@visactor/vtable';
import type { FilterStateManager } from './filter-state-manager';
import { ValueFilter } from './value-filter';
import { ConditionFilter } from './condition-filter';
import type { FilterMode, FilterOptions, FilterStyles } from './types';
export declare class FilterToolbar {
    table: ListTable | PivotTable;
    filterStateManager: FilterStateManager;
    pluginOptions: FilterOptions;
    valueFilter: ValueFilter | null;
    conditionFilter: ConditionFilter | null;
    activeTab: 'byValue' | 'byCondition';
    isVisible: boolean;
    selectedField: string | number | null;
    filterModes: FilterMode[];
    private filterMenu;
    private filterTabsContainer;
    private filterMenuWidth;
    private currentCol?;
    private currentRow?;
    private filterTabByValue;
    private filterTabByCondition;
    private footerContainer;
    private clearFilterOptionLink;
    private cancelFilterButton;
    private applyFilterButton;
    private pluginId;
    constructor(table: ListTable | PivotTable, filterStateManager: FilterStateManager, pluginOptions: FilterOptions);
    private onTabSwitch;
    private updateSelectedField;
    private applyFilter;
    private clearFilter;
    private recordHistory;
    private updateClearFilterButtonState;
    render(container: HTMLElement): void;
    updateStyles(styles: FilterStyles): void;
    attachEventListeners(): void;
    adjustMenuPosition(col?: number | null, row?: number | null, providedLeft?: number | null, providedTop?: number | null): void;
    show(col: number, row: number, filterModes: FilterMode[]): void;
    hide: (currentCol?: number, currentRow?: number) => void;
    destroy(): void;
}
