import type * as React from 'react';
import type { HasChildren, ValuesOfObject } from '../types';
export declare const FOCUSABLE_ELEMENTS_LIST: string[];
export declare const Keys: {
    readonly ENTER: "Enter";
    readonly SPACE: "Space";
    readonly TAB: "Tab";
    readonly ESCAPE: "Escape";
    readonly HOME: "Home";
    readonly END: "End";
    readonly DELETE: "Delete";
    readonly BACKSPACE: "Backspace";
    readonly ARROW_LEFT: "ArrowLeft";
    readonly ARROW_RIGHT: "ArrowRight";
    readonly ARROW_UP: "ArrowUp";
    readonly ARROW_DOWN: "ArrowDown";
    readonly PAGE_UP: "PageUp";
    readonly PAGE_DOWN: "PageDown";
};
export type KeysValues = ValuesOfObject<typeof Keys>;
export declare function pressedKey<T extends KeyboardEvent | React.KeyboardEvent>(event: T): 'Enter' | 'Space' | 'Tab' | 'Escape' | 'Home' | 'End' | 'ArrowLeft' | 'ArrowRight' | 'ArrowUp' | 'ArrowDown' | 'PageUp' | 'PageDown' | 'Backspace' | 'Delete' | null;
export declare const FOCUS_ALLOW_LIST_KEYS: Set<string>;
export declare function isKeyboardFocusingStarted<T extends KeyboardEvent | React.KeyboardEvent>(event: T): boolean;
export declare function shouldTriggerClickOnEnterOrSpace(e: KeyboardEvent | React.KeyboardEvent<HTMLElement>): boolean;
/**
 * @see https://doka.guide/a11y/aria-expanded/
 */
export declare const injectAriaExpandedPropByRole: (props: React.ComponentProps<any>, state: boolean, role?: React.AriaRole) => React.ComponentProps<any>;
interface HasAccessibleNameProps extends Pick<React.AriaAttributes, 'aria-label' | 'aria-labelledby'>, HasChildren {
    title?: string;
}
export declare function hasAccessibleName({ 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, title, children, }: HasAccessibleNameProps): boolean;
/**
 * @private
 */
export declare const getHorizontalFocusGoTo: (keys: Extract<KeysValues, "ArrowUp" | "ArrowLeft" | "ArrowDown" | "ArrowRight" | "Home" | "End">) => "prev" | "next" | "first" | "last";
export {};
//# sourceMappingURL=accessibility.d.ts.map