import React, { ReactElement, ReactNode, Ref } from 'react';
import { DropdownPlacementTypes } from './types';
export type DropdownFitWidthToRef = boolean | string;
type OnClickType = React.MouseEvent | React.KeyboardEvent;
export type RenderAnchorProps<T extends HTMLElement = any> = {
    ref: Ref<T>;
    onClick: (event: OnClickType, openedWithKeyboard?: boolean) => void;
    isOpen: boolean;
    selectedOption: any;
};
export type DropdownChildren = (props: any) => any | ReactNode;
export type DropdownProps = {
    children: DropdownChildren;
    renderAnchor: (props: RenderAnchorProps) => ReactElement;
    /** Callback that will be closed on dropdown close */
    onClose?: () => void;
    onOpen?: (openedWithKeyboard: boolean) => void;
    contentClassName?: string;
    fitWidthToRef?: DropdownFitWidthToRef;
    placement?: DropdownPlacementTypes;
    useCloseTransition?: boolean;
    selectedOption?: any;
    isDisabled?: boolean;
    startOpen?: boolean;
    destroyOnScroll?: boolean;
    /** Dropdown wrapper content test id */
    testId?: string;
    id?: string;
    forceUpdatePopperAfterOpen?: boolean;
    shouldCloseDropdownOnEsc?: boolean;
    hasCustomFocusHandling?: boolean;
    contentAriaLabel?: string;
};
/** Base Dropdown component that enables custom dropdown implementations.
 * For Menu, Selectbox or Searchable Dropdown usecases please reffer to DropdownMenu or Searchable Dropdown
 * [CAPITALIZATION] Use title case for labels, no colon at the end
 * [CAPITALIZATION] Use sentence case for selection
 * @midnight-gray-supported
 */
export default function Dropdown(props: DropdownProps): import("react/jsx-runtime").JSX.Element;
export {};
