import { FunctionComponent, HTMLProps, ReactNode } from 'react';
import { Value } from './structures';
import './Select.less';
declare type SelectProps = {
    /**
     * ID of the input.
     */
    id?: string;
    /**
     * Size of the select. Note that size is specified, the control doesn't grow up if some option is large than the initial control size.
     * @since 2.3.0
     */
    size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'fill';
    /**
     * Array of Option or OptionGroup.
     * @since 2.3.0
     */
    children: ReactNode;
    /**
     * @ignore
     */
    baseClassName?: string;
    /**
     * @ignore
     */
    className?: string;
    /**
     * Whether disabled or not.
     * @since 2.3.0
     */
    disabled?: boolean;
    /**
     * In this mode, the available options are filtered by user input.
     * @since 2.3.0
     */
    searchable?: boolean;
    /**
     * In this mode, there is a button for deleting the selected option (or options).
     * @since 2.3.0
     */
    clearable?: boolean;
    /**
     * In this mode, it is possible to select several options.
     * @since 2.3.0
     */
    multiple?: boolean;
    /**
     * A placeholder for the input.
     * @since 2.3.0
     */
    placeholder?: ReactNode;
    /**
     * An initial value.
     * @since 2.3.0
     */
    defaultValue?: Value | Value[];
    /**
     * An initial value. It switches component into a controlled mode.
     * @since 2.3.0
     */
    value?: Value | Value[];
    /**
     * A callback executed when a value is changed.
     * @since 2.3.0
     */
    onChange?: (value: Value | Value[] | undefined) => void;
} & Omit<HTMLProps<HTMLDivElement>, 'onChange' | 'size'>;
/**
 * `Select` component is used for making a choice among a set of related options.
 * @since 2.3.0
 */
declare const Select: FunctionComponent<SelectProps>;
export default Select;
