import type { AriaAttributes } from 'react';
import React from 'react';
import type { PopupMenuProps } from '../../internal/PopupMenu';
import type { MenuItemProps } from '../MenuItem';
import type { MenuHeaderProps } from '../MenuHeader';
import type { PopupPositionsType } from '../../internal/Popup';
import type { CommonProps } from '../../internal/CommonWrapper';
import type { TGetRootNode } from '../../lib/rootNode';
export type TooltipMenuChildType = React.ReactElement<MenuItemProps | unknown | MenuHeaderProps>;
export interface TooltipMenuProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'preventIconsOffset'> {
    /** @ignore */
    children?: TooltipMenuChildType | TooltipMenuChildType[];
    /** Задает максимальную высоту меню. */
    menuMaxHeight?: number | string;
    /** Задает ширину меню. */
    menuWidth?: number | string;
    /** Задает элемент или функцию возвращающую элемент, которые используется вместо `caption`.
     * В случае функции, внутри нее необходимо управлять открытием и закрытием меню. */
    caption: PopupMenuProps['caption'];
    /** Задает элемент, который будет отрендерен в шапке меню.
     * _Примечание_: контрол MenuHeader передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`. */
    header?: React.ReactNode;
    /** Задает элемент, который будет отрендерен в подвале меню.
     * Перед элементом переданным в `footer` будет отрендерен MenuSeparator. */
    footer?: React.ReactNode;
    /** Определяет список позиций, доступных для расположения выпадашки относительно caption.
     * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка. */
    positions?: PopupPositionsType[];
    /** Отключает анимацию. */
    disableAnimations?: boolean;
}
export declare const TooltipMenuDataTids: {
    readonly root: "TooltipMenu__root";
};
type DefaultProps = Required<Pick<TooltipMenuProps, 'disableAnimations'>>;
/**
 * Меню `TooltipMenu` раскрывается по клику на переданный в `caption` элемент.
 *
 * Положение меню задаётся с помощью массива `positions` и работает так:
 * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,
 * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.
 *
 * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.
 *
 * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.
 */
export declare class TooltipMenu extends React.Component<TooltipMenuProps> {
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    getRootNode: TGetRootNode;
    private setRootNode;
    static defaultProps: DefaultProps;
    private getProps;
    constructor(props: TooltipMenuProps);
    render(): React.JSX.Element;
    renderMain(): React.JSX.Element | null;
}
export {};
