import type { AriaAttributes, HTMLAttributes } from 'react';
import React from 'react';
import type { PopupMenuProps } from '../../internal/PopupMenu';
import type { Nullable } from '../../typings/utility-types';
import type { PopupPositionsType } from '../../internal/Popup';
import type { CommonProps } from '../../internal/CommonWrapper';
import type { TGetRootNode } from '../../lib/rootNode';
import type { SizeProp } from '../../lib/types/props';
export interface KebabProps extends Pick<AriaAttributes, 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>, CommonProps {
    /** Делает компонент недоступным. */
    disabled?: boolean;
    /** Задает размер контрола. */
    size?: SizeProp;
    /** Определяет список позиций, доступных для расположения выпадашки относительно `kebab`.
     * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.
     * @default ['bottom left', 'bottom right', 'top left', 'top right']. */
    positions?: PopupPositionsType[];
    positions2?: string;
    /** Задает максимальную высоту меню. */
    menuMaxHeight?: number | string;
    /** Отключает анимацию. */
    disableAnimations?: boolean;
    /** Добавляет иконку слева. */
    icon?: React.ReactNode;
    /** @ignore */
    'aria-describedby'?: AriaAttributes['aria-describedby'];
}
export declare const KebabDataTids: {
    readonly caption: "Kebab__caption";
};
export interface KebabState {
    anchor: Nullable<HTMLElement>;
    focusedByTab: boolean;
}
type DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'disableAnimations'>>;
/**
 * Кебаб-меню `Kebab` содержит действия с объектом.
 */
export declare class Kebab extends React.Component<KebabProps, KebabState> {
    static __KONTUR_REACT_UI__: string;
    static displayName: string;
    static defaultProps: DefaultProps;
    private getProps;
    state: KebabState;
    private theme;
    private size;
    getRootNode: TGetRootNode;
    private setRootNode;
    private listener;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element;
    private renderMain;
    private renderCaption;
    private handleCaptionKeyDown;
    private handleChangeMenuState;
    private handleFocus;
    private handleBlur;
    private renderIcon;
}
export {};
