import { ReactNode, CSSProperties } from 'react';
type Value = string | number;
export interface Option {
    value: string;
    label: string;
    /** When true, the option renders greyed out and is not selectable. */
    disabled?: boolean;
    /**
     * Native title-attribute tooltip on the option row. If provided alongside
     * `disabled`, a small warning icon is rendered next to the label so the
     * row is visually distinct as the source of the tooltip.
     */
    tooltip?: string;
}
export interface SelectProps {
    id?: string;
    name?: string;
    disabled?: boolean;
    defaultOpen?: boolean;
    open?: boolean;
    defaultValue?: Value;
    value?: Value;
    placeholder?: string;
    options?: Option[];
    style?: CSSProperties;
    className?: string;
    optionClassName?: string;
    popoverClassName?: string;
    state?: "default" | "error" | "warning";
    onSelect?: (value: Value) => void;
    onOpen?: () => void;
    onClose?: () => void;
    onFocus?: () => void;
    onBlur?: () => void;
    renderSelectedOption?: (option: Option) => ReactNode;
}
export declare const Select: import('react').ForwardRefExoticComponent<SelectProps & import('react').RefAttributes<HTMLDivElement>>;
export {};
