export function optionValidator(props: any, propName: any, componentName: any): undefined;
export const DIVIDER_OPTION_VALUE: "-";
export default DropdownLayout;
declare class DropdownLayout extends React.PureComponent<any, any, any> {
    constructor(props: any);
    containerRef: React.RefObject<any>;
    state: {
        hovered: number;
        selectedId: any;
        focusedItemId: null;
    };
    focusableItemsIdsList: any[];
    savedOnClicks: any[];
    children: {};
    componentDidMount(): void;
    _boundEvents: string[] | undefined;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: any): void;
    UNSAFE_componentWillReceiveProps(nextProps: any): void;
    _focusFirstOption(): void;
    _checkIfEventOnElements(e: any, elem: any): boolean;
    _onMouseEventsHandler: (e: any) => void;
    _renderTopArrow(): React.JSX.Element | null;
    _convertOptionToListItemSectionBuilder({ option, idx }: {
        option: any;
        idx: any;
    }): {
        id: string | number;
        overrideOptionStyle: true;
        value: (props?: Partial<import("../ListItemSection").ListItemSectionProps>) => React.ReactNode;
    } | undefined;
    _convertOptionToListItemActionBuilder({ option, idx }: {
        option: any;
        idx: any;
    }): {
        id: string | number;
        disabled: boolean | undefined;
        overrideOptionStyle: true;
        value: (props: Partial<import("../ListItemAction").ListItemActionProps>) => React.ReactNode;
    };
    _isControlled(): boolean;
    _focusOnSelectedOption(): void;
    _setSelectedOptionNode(optionNode: any, option: any): void;
    selectedOption: any;
    _onClickOutside: (event: any) => void;
    _markOption(index: any, options: any): void;
    _onSelect: (index: any, e: any) => any;
    _onActionClick: (e: any) => void;
    _saveOnClicks: () => void;
    _onMouseEnter: (index: any) => void;
    _onMouseLeave: () => void;
    _getMarkedIndex(): any;
    _markNextStep(step: any): void;
    _focusOnOption: () => void;
    _scrollToOption(): void;
    _markOptionAtIndex: (markedIndex: any) => void;
    /**
     * Handle keydown events for the DropdownLayout, mostly for accessibility
     *
     * @param {SyntheticEvent} event - The keydown event triggered by React
     * @returns {boolean} - Whether the event was handled by the component
     */
    _onSelectListKeyDown: (event: SyntheticEvent) => boolean;
    _focus: (focusedItemId: any, e: any) => void;
    _handleActionListNavigation: (event: any, id: any) => void;
    _onActionListKeyDown: (event: any, id: any) => void;
    _onClose: () => void;
    _renderNode(node: any): React.JSX.Element | null;
    _wrapWithInfiniteScroll: (scrollableElement: any) => React.JSX.Element;
    loadedWithUndefinedOptions: boolean | undefined;
    /** for testing purposes only */
    _getDataAttributes: () => object;
    _convertCustomOptionToBuilder({ option }: {
        option: any;
    }): {
        id: any;
        disabled: any;
        overrideStyle: any;
        value: () => React.JSX.Element;
        overrideOptionStyle?: undefined;
    } | {
        id: any;
        disabled: any;
        overrideOptionStyle: any;
        value: () => React.JSX.Element;
        overrideStyle?: undefined;
    } | undefined;
    _convertOptionToListItemSelectBuilder({ option }: {
        option: any;
    }): {
        id: string | number;
        disabled: boolean | undefined;
        overrideOptionStyle: true;
        label: string | undefined;
        value: (props?: Partial<import("../ListItemSelect").ListItemSelectProps> & {
            hovered?: boolean;
        }) => React.JSX.Element;
    };
    _isBuilderOption({ option }: {
        option: any;
    }): boolean;
    _isCustomOption({ option }: {
        option: any;
    }): any;
    _isActionOption({ option }: {
        option: any;
    }): boolean;
    _isItemSection({ option }: {
        option: any;
    }): any;
    _convertOptionToBuilder(option: any, idx: any): any;
    _renderOption({ option, idx }: {
        option: any;
        idx: any;
    }): React.JSX.Element;
    _getItemDataAttr: ({ hovered, selected, disabled }: {
        hovered: any;
        selected: any;
        disabled: any;
    }) => object;
    _renderOptionContent({ option, idx, hasLink }: {
        option: any;
        idx: any;
        hasLink: any;
    }): React.JSX.Element;
    _markOptionByProperty(props: any): void;
    _findIndex(arr: any, predicate: any): number;
    _isSelectableOption(option: any): any;
    _renderOptions(): any;
    render(): React.JSX.Element;
    options: HTMLDivElement | null | undefined;
}
declare namespace DropdownLayout {
    export namespace propTypes {
        let className: PropTypes.Requireable<string>;
        let dropDirectionUp: PropTypes.Requireable<boolean>;
        let focusOnSelectedOption: PropTypes.Requireable<boolean>;
        let onClose: PropTypes.Requireable<(...args: any[]) => any>;
        let onSelect: PropTypes.Requireable<(...args: any[]) => any>;
        let onOptionMarked: PropTypes.Requireable<(...args: any[]) => any>;
        let overflow: PropTypes.Requireable<string>;
        let visible: PropTypes.Requireable<boolean>;
        let options: PropTypes.Requireable<any[]>;
        let selectedId: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        let tabIndex: PropTypes.Requireable<number>;
        let onClickOutside: PropTypes.Requireable<(...args: any[]) => any>;
        let fixedHeader: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        let fixedFooter: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        let maxHeightPixels: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        let minWidthPixels: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        let withArrow: PropTypes.Requireable<boolean>;
        let closeOnSelect: PropTypes.Requireable<boolean>;
        let onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
        let onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
        let itemHeight: PropTypes.Requireable<string>;
        let selectedHighlight: PropTypes.Requireable<boolean>;
        let inContainer: PropTypes.Requireable<boolean>;
        let infiniteScroll: PropTypes.Requireable<boolean>;
        let loadMore: PropTypes.Requireable<(...args: any[]) => any>;
        let hasMore: PropTypes.Requireable<boolean>;
        let markedOption: PropTypes.Requireable<NonNullable<string | number | boolean | null | undefined>>;
        let focusOnOption: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        let scrollToOption: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        let listType: PropTypes.Requireable<string>;
        let autoFocus: PropTypes.Requireable<boolean>;
    }
    export namespace defaultProps {
        let options_1: never[];
        export { options_1 as options };
        let tabIndex_1: number;
        export { tabIndex_1 as tabIndex };
        let maxHeightPixels_1: number;
        export { maxHeightPixels_1 as maxHeightPixels };
        let closeOnSelect_1: boolean;
        export { closeOnSelect_1 as closeOnSelect };
        let itemHeight_1: string;
        export { itemHeight_1 as itemHeight };
        let selectedHighlight_1: boolean;
        export { selectedHighlight_1 as selectedHighlight };
        let inContainer_1: boolean;
        export { inContainer_1 as inContainer };
        let infiniteScroll_1: boolean;
        export { infiniteScroll_1 as infiniteScroll };
        let loadMore_1: null;
        export { loadMore_1 as loadMore };
        let hasMore_1: boolean;
        export { hasMore_1 as hasMore };
        let markedOption_1: boolean;
        export { markedOption_1 as markedOption };
        let overflow_1: string;
        export { overflow_1 as overflow };
        import listType_1 = ListType.select;
        export { listType_1 as listType };
    }
    export let displayName: string;
    export { NOT_HOVERED_INDEX as NONE_SELECTED_ID };
}
import React from 'react';
import PropTypes from 'prop-types';
declare namespace ListType {
    let action: string;
    let select: string;
}
declare const NOT_HOVERED_INDEX: -1;
//# sourceMappingURL=DropdownLayout.d.ts.map