export type SelectItem<TValue extends string = string> = {
    value: TValue;
    label: string;
    disabled?: boolean;
    /** Optional icon URL rendered beside the label in trigger and dropdown. */
    iconUrl?: string;
    /** Optional React node rendered as an icon beside the label (takes precedence over iconUrl). */
    icon?: React.ReactNode;
};
export type SelectProps<TValue extends string = string> = {
    /** Available options rendered in the trigger dropdown. */
    items: SelectItem<TValue>[];
    /** Currently selected option value. */
    value: TValue;
    /** Called when the selected value changes. */
    onChange: (value: TValue) => void;
    /** Accessible label announced for the select trigger. */
    ariaLabel?: string;
    /** Custom class name applied to the select root. */
    className?: string;
    /** Extra classes for the trigger button, e.g. corner radius. */
    triggerClassName?: string;
    /** Whether the select should block user interaction. */
    disabled?: boolean;
};
