import React from 'react';
import type { DropdownFlyoutProps, DropdownOption, FlyoutOption } from './DropdownFlyout.types';
export declare function noop(): void;
export declare function returnFalse(): boolean;
export declare function hasChildren(option: DropdownOption): boolean;
export declare function transformOption(options: DropdownOption[], parentId: FlyoutOption['parentId']): FlyoutOption[];
export declare function useDropdownFlyout({ flyoutOptions, onClick: _onClick, onKeyDown: _onKeyDown, }: Pick<DropdownFlyoutProps, 'onClick' | 'onKeyDown'> & {
    flyoutOptions: FlyoutOption[];
}): {
    isFocused: boolean;
    isMouseOver: boolean;
    isOpen: boolean;
    options: FlyoutOption[];
    expanded: string[];
    highlighted: FlyoutOption;
    expand: (option: FlyoutOption) => void;
    collapse: (option: FlyoutOption) => void;
    isHighlighted: (option: FlyoutOption) => boolean;
    isExpanded: (option: FlyoutOption) => boolean;
    closeDropdown: () => void;
    closeSelectedDropdown: (e: Event | React.FocusEvent) => void;
    openDropdown: () => void;
    onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => void;
    onClick: (option: FlyoutOption) => void;
    setMouseOver: (isMouseOver: boolean) => void;
    setFocused: (isFocused: boolean) => void;
};
export declare function defaultOptionRenderer(option: DropdownOption): React.JSX.Element;
export declare const DropdownFlyoutContext: React.Context<{
    onClick: (option: FlyoutOption) => void;
    expand: (option: FlyoutOption) => void;
    collapse: (option: FlyoutOption) => void;
    optionRenderer: (option: DropdownOption) => React.ReactNode;
    isExpanded: (option: FlyoutOption) => boolean;
    isHighlighted: (option: FlyoutOption) => boolean;
}>;
export declare const useDropdownFlyoutContext: () => {
    onClick: (option: FlyoutOption) => void;
    expand: (option: FlyoutOption) => void;
    collapse: (option: FlyoutOption) => void;
    optionRenderer: (option: DropdownOption) => React.ReactNode;
    isExpanded: (option: FlyoutOption) => boolean;
    isHighlighted: (option: FlyoutOption) => boolean;
};
