import type { AriaAttributes, HTMLAttributes, JSX } from 'react';
import React from 'react';
import { MenuItem } from '../MenuItem/index.js';
import type { ButtonUse } from '../Button/index.js';
import type { CommonProps } from '../../internal/CommonWrapper/types.js';
import type { TGetRootNode } from '../../lib/rootNode//rootNodeDecorator.js';
import type { SizeProp } from '../../lib/types/props.js';
export interface DropdownProps extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps {
    /** Текст кнопки-меню. */
    caption: React.ReactNode;
    /** Добавляет иконку слева от текста кнопки. */
    icon?: React.ReactElement;
    /** Ширина кнопки-меню. Если `menuWidth` не задан, такая же минимальная ширина применяется к раскрывающемуся меню. */
    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.js").ReactUIComponentWithRef<HTMLDivElement, import("../MenuHeader/MenuHeader.js").MenuHeaderProps> & Record<never, never>;
    static MenuItem: typeof MenuItem;
    static Separator: import("../../lib/forwardRefAndName.js").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;
}
