import React from 'react';
import type { HTMLProps } from '../../typings/html.js';
import type { PopupProps } from '../../internal/Popup/index.js';
import type { ComboBoxMenuProps } from '../../internal/CustomComboBox/index.js';
import type { TokenSize } from '../Token/index.js';
import type { TokenInputMenuAlign, TokenInputProps } from './TokenInput.js';
export interface TokenInputMenuProps<T> extends ComboBoxMenuProps<T> {
    /** html-элемент от которого будет позиционировано Menu в случае menuAlign cursor */
    anchorElementForCursor: PopupProps['anchorElement'];
    /** html-элемент от которого будет позиционировано Menu в случае menuAlign left */
    anchorElementRoot: PopupProps['anchorElement'];
    /** Задает ширину выпадающего меню. */
    menuWidth: TokenInputProps<string>['menuWidth'];
    /** Задает выравнивание выпадающего меню. */
    menuAlign: TokenInputMenuAlign;
    /** Задает id выпадающему меню.
     Полезно при реализации a11y. Например, помогает связать aria-controls с выпадающим меню. */
    popupMenuId?: HTMLProps['id'];
    /** Задает размер контрола. */
    size?: TokenSize;
}
interface TokenInputMenuState {
    forceMenuLeftAlign?: boolean;
}
export declare class TokenInputMenu<T = string> extends React.Component<TokenInputMenuProps<T>, TokenInputMenuState> {
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    state: TokenInputMenuState;
    private theme;
    private menu;
    render(): React.JSX.Element;
    getMenuRef: () => any | null;
    private getPopupMarginSize;
    private renderMain;
    private handleMenuPositionChange;
    private getPopupMargin;
    private menuRef;
}
export {};
