import type { AriaAttributes, HTMLAttributes, JSX } from 'react';
import React from 'react';
import type { PopupMenuProps } from '../../internal/PopupMenu/index.js';
import type { Nullable } from '../../typings/utility-types.js';
import type { PopupPositionsType } from '../../internal/Popup/index.js';
import type { CommonProps } from '../../internal/CommonWrapper/index.js';
import type { TGetRootNode } from '../../lib/rootNode/index.js';
import type { SizeProp } from '../../lib/types/props.js';
export interface KebabProps extends Pick<AriaAttributes, 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>, CommonProps {
    /** Размер кнопки. */
    size?: SizeProp;
    /** Список доступных позиций выпадающего меню относительно кнопки.
     * @default ['bottom left', 'bottom right', 'top left', 'top right'].
     */
    positions?: PopupPositionsType[];
    /** Максимальная высота меню. */
    menuMaxHeight?: number | string;
    /** Блокирует кнопку. */
    disabled?: boolean;
    /** Отключает анимацию выпадающего меню. */
    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'>>;
/**
 * Кебаб-меню содержит действия с объектом.
 */
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 globalObject;
    private emotion;
    private cx;
    private styles;
    private theme;
    private size;
    getRootNode: TGetRootNode;
    private setRootNode;
    private keyListener;
    private listener;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element;
    private renderMain;
    private renderCaption;
    private handleCaptionKeyDown;
    private handleChangeMenuState;
    private handleFocus;
    private handleBlur;
    private renderIcon;
}
export {};
