import type { ComboboxItem } from './combobox';
import type { CommandMultiSelectItem } from './command-multi-select';
export type PickerOptionBadgeVariant = 'default' | 'secondary' | 'destructive' | 'outline';
export type PickerOptionBadge = Readonly<{
    label: string;
    variant?: PickerOptionBadgeVariant;
}>;
export type PickerOption = Readonly<{
    value: string;
    label: string;
    subtitle?: string;
    badge?: PickerOptionBadge;
}>;
export type PickerLabels = Readonly<{
    loading?: string;
    select?: string;
    empty?: string;
    emptySelection?: string;
}>;
export type PickerSelectionLabelArgs<TOption extends PickerOption = PickerOption> = Readonly<{
    value: string;
    options: readonly TOption[];
}>;
export type AsyncPickerOptionsState<TOption> = Readonly<{
    status: 'idle';
    options: readonly TOption[];
}> | Readonly<{
    status: 'loading';
    options: readonly TOption[];
}> | Readonly<{
    status: 'loaded';
    options: readonly TOption[];
}> | Readonly<{
    status: 'error';
    options: readonly TOption[];
    message: string;
}>;
export declare function normalizePickerSearchThreshold(raw: number | null | undefined, fallback?: number): number;
export declare function shouldShowPickerSearch(optionCount: number, threshold: number): boolean;
export declare function resolvePickerSelectionLabel<TOption extends PickerOption>(value: string | null | undefined, options: readonly TOption[], fallback?: (args: PickerSelectionLabelArgs<TOption>) => string): string | null;
export declare function createPickerComboboxItems<TOption extends PickerOption>(options: readonly TOption[]): ComboboxItem<TOption>[];
export declare function createPickerCommandMultiSelectItems<TOption extends PickerOption>(options: readonly TOption[]): CommandMultiSelectItem[];
