import React, { PureComponent } from 'react';
import type { WithOutsideClickProps } from '../../ui-react/with-react-editor-view-outer-listeners';
import type { OpenChangedEvent } from '../../ui/DropList';
import type { ArrowKeyNavigationProviderOptions } from '../ArrowKeyNavigationProvider/types';
export interface Props {
    children?: React.ReactNode;
    mountTo?: HTMLElement;
    boundariesElement?: HTMLElement;
    scrollableElement?: HTMLElement;
    trigger: React.ReactElement<any>;
    isOpen?: boolean;
    onOpenChange?: (attrs: OpenChangedEvent) => void;
    fitWidth?: number;
    fitHeight?: number;
    zIndex?: number;
    arrowKeyNavigationProviderOptions: ArrowKeyNavigationProviderOptions;
    dropdownListId?: string;
    alignDropdownWithParentElement?: boolean;
}
export interface State {
    target?: HTMLElement;
    popupPlacement: [string, string];
}
/**
 * Wrapper around @atlaskit/droplist which uses Popup and Portal to render
 * droplist outside of "overflow: hidden" containers when needed.
 *
 * Also it controls popper's placement.
 */
export declare class Dropdown extends PureComponent<Props, State> {
    constructor(props: Props);
    private handleRef;
    private updatePopupPlacement;
    private handleCloseAndFocus;
    private handleClose;
    private renderDropdown;
    render(): JSX.Element;
}
export type DropdownPropsWithOutsideClickProps = Props & WithOutsideClickProps;
declare const DropdownWithOuterListeners: React.ComponentType<React.PropsWithChildren<DropdownPropsWithOutsideClickProps>>;
export default DropdownWithOuterListeners;
