import React, { ReactElement } from 'react';
import { DropdownProps, TabsProps } from '@wix/design-system';
import { Filter } from '@wix/bex-core';
import type { TabCounterBadgeProps } from '../TabTotal/TabTotalCounterBadge';
import type { TabTotalParensProps } from '../TabTotal/TabTotalParens';
/** Type alias for TabTotalCounterBadge component element */
type TabTotalCounterBadge<V> = ReactElement<TabCounterBadgeProps<V, unknown, any>>;
/** Type alias for TabTotalParens component element */
type TabTotalParens<V> = ReactElement<TabTotalParensProps<V, unknown, any>>;
export interface TabsFilterProps<V> {
    /**
     * List of tabs.
     * @external
     */
    data: V[];
    /**
     * Defines the selected filter.
     * <br><br>
     * Must be an [arrayFilter](./?path=/story/features-filter-factories--arrayfilter) object.
     * @external
     */
    filter: Filter<V[]>;
    /**
     * Display name of the tab that indicates that all items are included.
     * <br>
     * Changes the value of `filter` to an empty array.
     * @external
     */
    all?: string | null | false;
    /**
     * Renders a counter badge next to the tabs' texts.
     * <br><br>
     * See different examples of this implementation in the [Overview](./?path=/story/features-filter-components--tabsfilter) tab.
     * @external
     */
    counterBadge?: (value: V | null | undefined) => TabTotalCounterBadge<V> | TabTotalParens<V> | null | undefined;
    onChange?: (value: V | null | undefined) => unknown;
    /**
     * Tabs layout type.
     * <br><br>
     * If this prop is omitted, the width depends on the label width. The total width of all the tabs cannot exceed 80% of the toolbar.
     * <br><br>
     * Supported values:<br>
     * - `uniformFull`: Tabs are spread out uniformly.
     * @external
     */
    type?: Extract<TabsProps['type'], 'uniformFull'>;
    placeAllTabLast?: boolean;
    /**
     * Custom popover props for the mobile dropdown menu. On mobile devices, tabs are displayed as a dropdown menu.
     * @external
     */
    mobilePopoverProps?: DropdownProps['popoverProps'];
}
declare function _TabsFilter<V>(props: TabsFilterProps<V>): React.JSX.Element;
export declare const TabsFilter: typeof _TabsFilter & {
    displayName: string; /**
     * Defines the selected filter.
     * <br><br>
     * Must be an [arrayFilter](./?path=/story/features-filter-factories--arrayfilter) object.
     * @external
     */
};
export {};
//# sourceMappingURL=TabsFilter.d.ts.map