import type { AriaAttributes, HTMLAttributes } from 'react';
import React from 'react';
import { MenuItem } from '../MenuItem';
import type { ButtonUse } from '../Button';
import type { CommonProps } from '../../internal/CommonWrapper';
import type { TGetRootNode } from '../../lib/rootNode';
import type { SizeProp } from '../../lib/types/props';
export interface DropdownProps extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps {
    /** Задает подпись на кнопке. */
    caption: React.ReactNode;
    /** Добавляет иконку слева от текста кнопки. */
    icon?: React.ReactElement<any>;
    /** Задает ширину выпадающего меню. */
    width?: React.CSSProperties['width'];
    /** @ignore */
    _renderButton?: (params: any) => JSX.Element;
    /** Отключает использование портала. */
    disablePortal?: boolean;
    /** Делает компонент недоступным.*/
    disabled?: boolean;
    /** Переводит контрол в состояние валидации "ошибка". */
    error?: boolean;
    /** Переводит контрол в состояние валидации "предупреждение". */
    warning?: boolean;
    /** Задает максимальную высоту меню. */
    maxMenuHeight?: number;
    /** Задает текущую позицию выпадающего окна вручную.
     */
    menuPos?: 'top' | 'bottom';
    /** Задает выравнивание выпадающего меню. */
    menuAlign?: 'left' | 'right';
    /** Задает длину меню. */
    menuWidth?: number | string;
    /** Задает размер контрола. */
    size?: SizeProp;
    /** Задаёт стиль кнопки. */
    use?: ButtonUse;
    /** @ignore */
    corners?: React.CSSProperties;
    /** Задает функцию, которая вызывается при закрытии меню. */
    onClose?: () => void;
    /** Задает функцию, которая вызывается при открытии меню. */
    onOpen?: () => void;
    /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave)  */
    onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;
    /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */
    onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;
    /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */
    onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;
}
export declare const DropdownDataTids: {
    readonly root: "Dropdown__root";
};
/**
 * Выпадающее меню `Dropdown`. Содержит несколько команд, объединенных по смыслу.
 *
 * Используйте кнопку-меню:
 * * когда не хватает места для нескольких кнопок.
 * * когда названия действий очень длинные.
 * * когда действия редко используются или объединены по смыслу.
 *
 * Не используйте `Dropdown` для выбора значения из набора вариантов. В таком случае воспользуйтесь компонентом Select.
 */
export declare class Dropdown extends React.Component<DropdownProps> {
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    static Header: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLDivElement, import("../MenuHeader").MenuHeaderProps> & Record<never, never>;
    static MenuItem: typeof MenuItem;
    static Separator: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLDivElement, CommonProps> & Record<never, never>;
    private _select;
    getRootNode: TGetRootNode;
    private setRootNode;
    private theme;
    render(): React.JSX.Element;
    renderMain: () => React.JSX.Element;
    /**
     * @public
     */
    open(): void;
    /**
     * @public
     */
    close(): void;
    private _refSelect;
}
