import { ReactElement, ReactNode, RefObject } from 'react';
import { EventEmitter } from '../utils';
import './ComboBoxDropdown.less';
declare type ValueType = any;
declare type GroupType = {
    label?: string;
    options: OptionType[];
    props?: {
        [key: string]: any;
    };
};
declare type OptionType = {
    value: ValueType;
    disabled: boolean;
    group?: GroupType;
    props?: {
        [key: string]: any;
    };
    children: ReactNode;
};
export declare const findNextSafeIndex: (currIndex: number, diff: number, options: OptionType[]) => number;
declare type ComboBoxDropdownProps = {
    baseClassName?: string;
    className?: string;
    disabled: boolean;
    groups: GroupType[];
    options: OptionType[];
    control: ReactElement;
    controlRef: RefObject<HTMLElement>;
    opened: boolean;
    onHighlightedIndexChange: (index: number) => void;
    onClose: () => void;
    highlightedIndex: number;
    onSelect: (value: ValueType) => void;
    value?: ValueType;
    noOptions?: ReactNode;
    emitter?: EventEmitter;
};
declare const ComboBoxDropdown: ({ baseClassName, className, control, controlRef, opened, disabled, groups, options, onHighlightedIndexChange, onClose, value, highlightedIndex, onSelect, noOptions, emitter, ...props }: ComboBoxDropdownProps) => JSX.Element;
export default ComboBoxDropdown;
