/// import { FilterTypeProps } from './types'; /** * One label may map to multiple enum ids due to translation or by design (i.e. "Unknown") * Aggregate enums with the same label and display them as a single option. * * @returns { uniqueEnumLabels, onUniqueFilterUpdate, selectedUniqueEnumLabels }; */ export declare const useUnique: ({ supportedEnumValues, onSelectedEnumIdsChange, selectedEnumIds, }: { supportedEnumValues: { id: string; toLabel(t: (key: string) => string): string; }[]; onSelectedEnumIdsChange: (values: string[]) => void; selectedEnumIds: string[]; }) => { uniqueEnumLabels: string[]; onUniqueFilterUpdate: (selectedEnumLabels: string[]) => void; selectedUniqueEnumLabels: string[]; }; /** * Select one or many enum values from the list. * * Enum contract: * 1) enum IDs(not translated identifiers) are required to be constant and unique within the enum * 2) the translated labels might be duplicated (one label may map to multiple enum IDs). * In such case enums with duplicated labels will be grouped as one option. * The common scenario are values not known at the compile time represented by one label i.e. 'Unknown'. * * FilterTypeProps are interpeted as follows: * 1) selectedFilters - selected enum IDs * 2) onFilterUpdate - accepts the list of selected enum IDs * 3) supportedValues - supported enum values */ export declare const EnumFilter: ({ selectedFilters: selectedEnumIds, onFilterUpdate: onSelectedEnumIdsChange, supportedValues: supportedEnumValues, title, placeholderLabel, filterId, showFilter, }: FilterTypeProps) => JSX.Element;