/// <reference types="react" />
import { Props, GroupBase, StylesConfig } from 'react-select';
export interface Option<T> {
    /**
     * Value of the select option.
     */
    value: T;
    /**
     * Text of the select option.
     */
    label: string;
    /**
     * Icon of the select option. Imported from carbon icons
     */
    icon?: any;
}
export interface SelectProps {
    /**
     * Select variation that will switch between styles for the Button .
     */
    variation?: 'initial' | 'default' | 'primary' | 'secondary';
    /**
     * className for the message.
     */
    className?: string;
    /**
     * String text for the label.
     */
    label?: string;
    /**
     * String text for the placeholder or a component element.
     */
    placeholder?: string | React.ReactNode;
    /**
     * Smaller descriptive text that can be added to the input.
     */
    message?: string;
    /**
     * className for the message.
     */
    messageClassName?: string;
}
export declare const SelectWrap: {
    <Option_1, IsMulti extends boolean = false, Group extends GroupBase<Option_1> = GroupBase<Option_1>>(props: Omit<Pick<import("react-select/dist/declarations/src/Select").Props<Option_1, IsMulti, Group>, "autoFocus" | "form" | "name" | "value" | "className" | "id" | "aria-errormessage" | "aria-invalid" | "aria-label" | "aria-labelledby" | "onFocus" | "onBlur" | "onChange" | "onKeyDown" | "ariaLiveMessages" | "classNamePrefix" | "delimiter" | "formatOptionLabel" | "hideSelectedOptions" | "inputValue" | "inputId" | "instanceId" | "isClearable" | "isOptionSelected" | "menuPortalTarget" | "onInputChange" | "onMenuOpen" | "onMenuClose" | "onMenuScrollToTop" | "onMenuScrollToBottom" | "theme"> & {
        placeholder?: import("react").ReactNode;
        tabIndex?: number | undefined;
        'aria-live'?: "off" | "assertive" | "polite" | undefined;
        backspaceRemovesValue?: boolean | undefined;
        blurInputOnSelect?: boolean | undefined;
        captureMenuScroll?: boolean | undefined;
        closeMenuOnSelect?: boolean | undefined;
        closeMenuOnScroll?: boolean | ((event: Event) => boolean) | undefined;
        components?: Partial<import("react-select/dist/declarations/src/components").SelectComponents<Option_1, IsMulti, Group>> | undefined;
        controlShouldRenderValue?: boolean | undefined;
        escapeClearsValue?: boolean | undefined;
        filterOption?: ((option: import("react-select/dist/declarations/src/filters").FilterOptionOption<Option_1>, inputValue: string) => boolean) | null | undefined;
        formatGroupLabel?: ((group: Group) => import("react").ReactNode) | undefined;
        getOptionLabel?: import("react-select").GetOptionLabel<Option_1> | undefined;
        getOptionValue?: import("react-select").GetOptionValue<Option_1> | undefined;
        isDisabled?: boolean | undefined;
        isLoading?: boolean | undefined;
        isOptionDisabled?: ((option: Option_1, selectValue: import("react-select").Options<Option_1>) => boolean) | undefined;
        isMulti?: IsMulti | undefined;
        isRtl?: boolean | undefined;
        isSearchable?: boolean | undefined;
        loadingMessage?: ((obj: {
            inputValue: string;
        }) => import("react").ReactNode) | undefined;
        minMenuHeight?: number | undefined;
        maxMenuHeight?: number | undefined;
        menuIsOpen?: boolean | undefined;
        menuPlacement?: import("react-select").MenuPlacement | undefined;
        menuPosition?: import("react-select").MenuPosition | undefined;
        menuShouldBlockScroll?: boolean | undefined;
        menuShouldScrollIntoView?: boolean | undefined;
        noOptionsMessage?: ((obj: {
            inputValue: string;
        }) => import("react").ReactNode) | undefined;
        openMenuOnFocus?: boolean | undefined;
        openMenuOnClick?: boolean | undefined;
        options?: import("react-select").OptionsOrGroups<Option_1, Group> | undefined;
        pageSize?: number | undefined;
        screenReaderStatus?: ((obj: {
            count: number;
        }) => string) | undefined;
        styles?: StylesConfig<Option_1, IsMulti, Group> | undefined;
        tabSelectsValue?: boolean | undefined;
    } & {}, "value" | "onChange" | "inputValue" | "menuIsOpen" | "onInputChange" | "onMenuOpen" | "onMenuClose"> & Partial<Pick<import("react-select/dist/declarations/src/Select").Props<Option_1, IsMulti, Group>, "autoFocus" | "form" | "name" | "value" | "className" | "id" | "aria-errormessage" | "aria-invalid" | "aria-label" | "aria-labelledby" | "onFocus" | "onBlur" | "onChange" | "onKeyDown" | "ariaLiveMessages" | "classNamePrefix" | "delimiter" | "formatOptionLabel" | "hideSelectedOptions" | "inputValue" | "inputId" | "instanceId" | "isClearable" | "isOptionSelected" | "menuPortalTarget" | "onInputChange" | "onMenuOpen" | "onMenuClose" | "onMenuScrollToTop" | "onMenuScrollToBottom" | "theme"> & {
        placeholder?: import("react").ReactNode;
        tabIndex?: number | undefined;
        'aria-live'?: "off" | "assertive" | "polite" | undefined;
        backspaceRemovesValue?: boolean | undefined;
        blurInputOnSelect?: boolean | undefined;
        captureMenuScroll?: boolean | undefined;
        closeMenuOnSelect?: boolean | undefined;
        closeMenuOnScroll?: boolean | ((event: Event) => boolean) | undefined;
        components?: Partial<import("react-select/dist/declarations/src/components").SelectComponents<Option_1, IsMulti, Group>> | undefined;
        controlShouldRenderValue?: boolean | undefined;
        escapeClearsValue?: boolean | undefined;
        filterOption?: ((option: import("react-select/dist/declarations/src/filters").FilterOptionOption<Option_1>, inputValue: string) => boolean) | null | undefined;
        formatGroupLabel?: ((group: Group) => import("react").ReactNode) | undefined;
        getOptionLabel?: import("react-select").GetOptionLabel<Option_1> | undefined;
        getOptionValue?: import("react-select").GetOptionValue<Option_1> | undefined;
        isDisabled?: boolean | undefined;
        isLoading?: boolean | undefined;
        isOptionDisabled?: ((option: Option_1, selectValue: import("react-select").Options<Option_1>) => boolean) | undefined;
        isMulti?: IsMulti | undefined;
        isRtl?: boolean | undefined;
        isSearchable?: boolean | undefined;
        loadingMessage?: ((obj: {
            inputValue: string;
        }) => import("react").ReactNode) | undefined;
        minMenuHeight?: number | undefined;
        maxMenuHeight?: number | undefined;
        menuIsOpen?: boolean | undefined;
        menuPlacement?: import("react-select").MenuPlacement | undefined;
        menuPosition?: import("react-select").MenuPosition | undefined;
        menuShouldBlockScroll?: boolean | undefined;
        menuShouldScrollIntoView?: boolean | undefined;
        noOptionsMessage?: ((obj: {
            inputValue: string;
        }) => import("react").ReactNode) | undefined;
        openMenuOnFocus?: boolean | undefined;
        openMenuOnClick?: boolean | undefined;
        options?: import("react-select").OptionsOrGroups<Option_1, Group> | undefined;
        pageSize?: number | undefined;
        screenReaderStatus?: ((obj: {
            count: number;
        }) => string) | undefined;
        styles?: StylesConfig<Option_1, IsMulti, Group> | undefined;
        tabSelectsValue?: boolean | undefined;
    } & {}> & import("react-select/dist/declarations/src/useStateManager").StateManagerAdditionalProps<Option_1> & SelectProps): JSX.Element;
    displayName: string;
};
export default SelectWrap;
