import type * as React from 'react'; import type { Icon } from '../../../icons/icons'; export type SelectOption = { value: T label?: string description?: string; Icon?: Icon disabled?: boolean options?: never; content?: never }; export type SelectOptionGroup = { label?: string options: SelectOption[] }; export type AreEqualFn = (a: T | undefined, b: T | undefined) => boolean; export type IsSelectedFn = (option: SelectOption, value: T[] | T | undefined) => boolean; export type GetLabelFn = (option: SelectOption) => React.ReactNode; export declare const defaultAreEqual: AreEqualFn; export declare const defaultIsSelected: IsSelectedFn; export declare const defaultGetLabel: GetLabelFn; export declare const joinLabels: (labels: React.ReactNode[]) => string | React.ReactNode[]; export declare function defaultFilterFn( query: string, options: SelectOption[], value: T[] | T | undefined, isSelected: IsSelectedFn ): SelectOption[]; export declare function normalizeOptionGroups(options: (SelectOption | SelectOptionGroup)[]): SelectOptionGroup[]; export declare function flattenOptions(options: (SelectOption | SelectOptionGroup)[]): SelectOption[]; export declare function deriveIdentifier(id: string, subid: number): string; export declare function deriveIdentifier(id: string, subid?: number): string | undefined; export declare function sliceOptionGroups(optionGroups: SelectOptionGroup[], start: number, end: number): (SelectOptionGroup & { originalIndex: number; slice: [start: number, end: number]; })[];