import { default as React, FC, ReactElement } from 'react';
import { SelectOptionProps, SelectValue } from '../SelectOption';
import { GroupOptions } from '../utils';
import { SelectTheme } from '../SelectTheme';
export interface RenderCreateOptionArgs {
    /** The current input text used to create a new option. */
    text: string;
    /** Callback invoked to create the new option. */
    onCreate: () => void;
}
export interface SelectMenuProps {
    /**
     * The id of the select.
     */
    id?: string;
    /**
     * Options passed to the select.
     */
    options?: SelectOptionProps[];
    /**
     * The selected option(s).
     */
    selectedOption?: SelectOptionProps | SelectOptionProps[];
    /**
     * Additional CSS styles to apply to the select menu.
     */
    style?: React.CSSProperties;
    /**
     * Whether the menu is disabled or not.
     */
    disabled?: boolean;
    /**
     * The groups of options.
     */
    groups?: GroupOptions;
    /**
     * Whether users can create options or not.
     */
    createable?: boolean;
    /**
     * Function to render the create option.
     */
    renderCreateOption?: ({ text, onCreate }: RenderCreateOptionArgs) => ReactElement;
    /**
     * Additional class names to apply to the select menu.
     */
    className?: string;
    /**
     * Whether the menu can select multiples or not.
     */
    multiple?: boolean;
    /**
     * Internal active index of the keyboard position.
     */
    index?: number;
    /**
     * The input's search text to use for highlighting.
     */
    inputSearchText?: string;
    /**
     * Whether users can filter the options or not.
     */
    filterable?: boolean | 'async';
    /**
     * Whether the component is loading or not.
     */
    loading?: boolean;
    /**
     * The size of the select menu.
     */
    size?: 'small' | 'medium' | 'large' | string;
    /**
     * Icon displayed for checked elements of the list
     */
    checkIcon?: any;
    /**
     * Event fired when the selected option(s) change.
     */
    onSelectedChange?: (option: SelectValue) => void;
    /**
     * The theme for the Select.
     */
    theme?: SelectTheme;
}
export declare const SelectMenu: FC<SelectMenuProps>;
