export type SelectModelValue = string | number | boolean | null;
export type SelectOption = string | number | boolean | {
    label: string;
    value: SelectModelValue;
    disabled?: boolean;
};
export type SelectOptionNormalized = Exclude<SelectOption, string | number | boolean>;
export type SelectOptionGroup = {
    label: string;
    options: (SelectOption | SelectOptionGroup)[];
};
export type SelectOptionGroupNormalized = {
    label: string;
    options: (SelectOptionNormalized | SelectOptionGroupNormalized)[];
};
export declare function isSelectOptionNormalized(value: unknown): value is SelectOptionNormalized;
export declare function isSelectOptionGroup(value: unknown): value is SelectOptionGroup;
export declare function isSelectOptionGroupNormalized(value: unknown): value is SelectOptionGroupNormalized;
export declare function filterOptionGroup(optionGroup: SelectOptionGroupNormalized, term: string | null): SelectOptionGroupNormalized;
export declare function filterOptionsOrOptionGroups(optionsOrOptionGroups: (SelectOptionNormalized | SelectOptionGroupNormalized)[], term: string | null): (SelectOptionNormalized | SelectOptionGroupNormalized)[];
export declare function optionIncludes(option: SelectOptionNormalized, term: string | null): boolean;
export declare function normalizeSelectOption(value: SelectOption): SelectOptionNormalized;
export declare function normalizeSelectOption(value: SelectOptionGroup): SelectOptionGroupNormalized;
export declare function normalizeSelectOption(value: SelectOption | SelectOptionGroup): SelectOptionNormalized | SelectOptionGroupNormalized;
export declare function flattenSelectOptions(value: (SelectOptionNormalized | SelectOptionGroupNormalized)[]): SelectOptionNormalized[];
