/// <reference types="node" />
import { ArrayField, WixPatternsContainer, KeyedItem, SelectState, ToggleState } from '@wix/bex-core';
import { EventEmitter } from '@wix/bex-core/events';
import { FilterToolbarState } from '../providers';
export interface DropdownSelectStateParams<V> {
    container: WixPatternsContainer;
    toolbar: FilterToolbarState;
    select?: SelectState<KeyedItem<V>>;
    filter: ArrayField<V>;
}
export declare class DropdownSelectState<V> {
    readonly container: WixPatternsContainer;
    readonly toolbar: FilterToolbarState;
    readonly select: SelectState<KeyedItem<V>>;
    readonly _filter: DropdownSelectStateParams<V>['filter'];
    readonly dropdown: ToggleState;
    readonly events: EventEmitter<[never]>;
    constructor(params: DropdownSelectStateParams<V>);
    get filterKeyedItemsMap(): Map<string, KeyedItem<V>>;
    get filter(): ArrayField<V>;
    get hasPendingFilter(): boolean;
    toKeyedItem: (item: V, index: number) => {
        id: string;
        key: string;
        item: V;
        index: number;
        indexWithinPage: number;
        pageIndex: number;
    };
    get finalFilterKeyedItems(): {
        id: string;
        key: string;
        item: V;
        index: number;
        indexWithinPage: number;
        pageIndex: number;
    }[];
    get finalFilterKeyedItemsMap(): Map<string, KeyedItem<V>>;
    get filterKeyedItems(): {
        id: string;
        key: string;
        item: V;
        index: number;
        indexWithinPage: number;
        pageIndex: number;
    }[];
    syncSelectedItems(): void;
    syncSelectedItemsIfChanged(): void;
    get selectedItems(): V[];
    set(item: KeyedItem<V>): void;
    setSingle(item: KeyedItem<V>): void;
    clear(): void;
    delete(item: KeyedItem<V>): void;
    deleteKey(key: string): void;
    refreshIfChanged(options?: {
        actionType?: 'add' | 'remove';
        clickedValueKey?: string;
    }): void;
    close(): void;
    open(): void;
    closeAndChangeSelectedItems(): void;
    init(): () => void;
}
//# sourceMappingURL=DropdownSelectState.d.ts.map