import { default as React } from 'react';
export type OptionDOMValue = {
    id: string;
    text: string;
};
export type SelectOption = {
    /**
     * Used to identify an option.
     */
    id: string;
    /**
     * The option item text.
     */
    label: string | React.ReactNode;
    /**
     * Icon to be displayed in front of the label.
     */
    icon?: React.ReactNode;
    /**
     * Defines whether the menu item is selected.
     *
     * @default false
     */
    selected?: boolean;
    /**
     * Setting "disabled" to true will disable the respective item.
     *
     * @default false
     */
    disabled?: boolean;
    /**
     * Will treat the given value as a menu header
     */
    header?: boolean;
};
export type BaseSelectDropdownProps<T extends SelectOption> = {
    options?: T[];
    isOpen?: boolean;
    isLoading?: boolean;
    updateDOMValues?: (values: OptionDOMValue[] | undefined) => void;
    onOpen?: (hasDropup: boolean) => void;
    onSelect?: (selectedItem: T | undefined) => void;
    onClose?: () => void;
    placeholder?: string | React.ReactNode;
    dropup?: boolean;
    pullRight?: boolean;
    autoDropDirection?: boolean;
    noItemMessage?: string | React.ReactNode;
    focusedItemIndex?: number;
    dropdownClassName?: string;
    keyboardUsed?: boolean;
    useActiveClass?: boolean;
};
declare const BaseSelectDropdown: <T extends SelectOption>(props: BaseSelectDropdownProps<T>) => import("react/jsx-runtime").JSX.Element;
export declare const filterOptions: <T extends SelectOption>(itemDOMValues: OptionDOMValue[], filterValue: string, options: T[]) => T[];
export default BaseSelectDropdown;
