import { CollectionState, Filter, FilterItem, FiltersMap } from '@wix/bex-core';
import { ToolbarCollectionState } from '../../state';
import { TypedEmitter } from '@wix/bex-core/events';
import React from 'react';
import { FilterProps } from '../../model';
export interface FilterTagValue<V> {
    id: string;
    filter: Filter<V>;
    value: FilterItem<V>;
}
export interface AppliedFiltersTagListStateParams<T, F extends FiltersMap> {
    readonly table: ToolbarCollectionState<T, F>;
}
export declare class AppliedFiltersTagListState<T, F extends FiltersMap> {
    readonly table: ToolbarCollectionState<T, F>;
    readonly events: TypedEmitter<{
        fetch: (collection: CollectionState<unknown, {}>) => () => unknown;
    }>;
    maxWidth: string;
    constructor(params: Readonly<AppliedFiltersTagListStateParams<T, F>>);
    init(): () => void;
    get filterPropsMap(): Map<Filter<any>, FilterProps<any>>;
    toTag<V>(key: string, filter: Filter<V>): {
        id: string;
        filter: Filter<V>;
        value: FilterItem<V>;
    }[];
    get filterValues(): {
        id: string;
        filter: Filter<unknown>;
        value: unknown;
    }[];
    get tags(): {
        children: {} | null;
        theme?: import("@wix/design-system").TagSkin | undefined;
        className?: string | undefined;
        dataHook: string;
        skin?: import("@wix/design-system").TagSkin | undefined;
        disabled?: boolean | undefined;
        id: string;
        onClick?: ((id: string, event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void) | undefined;
        maxWidth: import("csstype").Property.MaxWidth<string | number>;
        removable?: boolean | undefined;
        thumb?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
        ellipsisProps?: import("@wix/design-system/dist/types/common/Ellipsis").EllipsisCommonProps | undefined;
        closeButtonRef?: React.Ref<HTMLButtonElement> | undefined;
        key: string;
        filterProps: FilterProps<any> | undefined;
        filter: Filter<any>;
        values: any[];
    }[];
    _reportFilterToggleBiOnNextResult<V>(filter: Filter<V>, values: FilterItem<V>[]): void;
    onClearButtonClick: () => void;
    onTagRemove<V>(filter: Filter<V>, values: FilterItem<V>[], onAppliedFilterTagRemove?: (value: FilterItem<V>) => void): void;
    private generateNonAggregatedTag;
    private generateAggregatedTag;
}
//# sourceMappingURL=AppliedFiltersTagListState.d.ts.map