export default BadgeSelect;
declare class BadgeSelect extends React.Component<any, any, any> {
    constructor(props: any);
    _isControlled: () => boolean;
    /**
     * Determine if a certain key should open the DropdownLayout
     *
     * @param {KeyboardEvent.key} key - The key name
     * @return {boolean} - Whether the key should cause the DropdownLayout to open
     */
    _isOpenKey: (key: KeyboardEvent.key) => boolean;
    _getBadgeOptionById: (options: any, wantedId: any) => any;
    _handleSelect: ({ id: selectedId }: {
        id: any;
    }) => void;
    _onKeyDown: (event: any) => void;
    getSelectedOption: (props: any) => any;
    hideDropdown: () => void;
    showDropdown: () => void;
    toggleDropdown: () => void;
    state: {
        visible: boolean;
        selectedBadge: any;
    };
    get options(): {
        disabled: boolean;
        overrideOptionStyle: true;
        id: string | number;
        value: (props?: Partial<import("../BadgeSelectItem").default>) => React.ReactNode;
    }[];
    UNSAFE_componentWillReceiveProps(nextProps: any): void;
    render(): React.JSX.Element;
    badge: Badge | null | undefined;
    dropdownLayout: DropdownLayout | null | undefined;
}
declare namespace BadgeSelect {
    let displayName: string;
    namespace propTypes {
        let options: PropTypes.Validator<(PropTypes.InferProps<{
            id: PropTypes.Validator<string>;
            skin: PropTypes.Validator<string>;
            text: PropTypes.Validator<string>;
            subtitle: PropTypes.Requireable<string>;
            ellipsis: PropTypes.Requireable<boolean>;
        }> | null | undefined)[]>;
        let selectedId: PropTypes.Requireable<string>;
        let onSelect: PropTypes.Requireable<(...args: any[]) => any>;
        let size: PropTypes.Requireable<string>;
        let type: PropTypes.Requireable<string>;
        let uppercase: PropTypes.Requireable<boolean>;
        let dataHook: PropTypes.Requireable<string>;
        let popoverProps: PropTypes.Requireable<PropTypes.InferProps<{
            appendTo: PropTypes.Requireable<string>;
            flip: PropTypes.Requireable<boolean>;
            fixed: PropTypes.Requireable<boolean>;
            placement: PropTypes.Requireable<string>;
            timeout: PropTypes.Requireable<NonNullable<number | PropTypes.InferProps<{
                enter: PropTypes.Requireable<number>;
                exit: PropTypes.Requireable<number>;
            }> | null | undefined>>;
            zIndex: PropTypes.Requireable<number>;
            onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
            onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
            moveArrowTo: PropTypes.Requireable<number>;
            moveBy: PropTypes.Requireable<PropTypes.InferProps<{
                x: PropTypes.Requireable<number>;
                y: PropTypes.Requireable<number>;
            }>>;
            hideDelay: PropTypes.Requireable<number>;
            showDelay: PropTypes.Requireable<number>;
            width: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
            maxWidth: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
            minWidth: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
            dynamicWidth: PropTypes.Requireable<boolean>;
        }>>;
    }
    namespace defaultProps {
        let size_1: string;
        export { size_1 as size };
        let type_1: string;
        export { type_1 as type };
        let uppercase_1: boolean;
        export { uppercase_1 as uppercase };
    }
}
import React from 'react';
import Badge from '../Badge';
import DropdownLayout from '../DropdownLayout';
import PropTypes from 'prop-types';
//# sourceMappingURL=BadgeSelect.d.ts.map