import { type ReactNode } from "react"; /** The interaction states a subtree resolves as pinned. */ export interface PinnedInteraction { hovered: boolean; focused: boolean; pressed: boolean; } /** The pinned interaction states from the nearest InteractionOverride, or null outside one. */ export declare function useInteractionOverride(): PinnedInteraction | null; /** * Whether an InteractionOverride pins keyboard focus on a control that paints a focus * look of its own (a field's `ring` border) instead of the Pressable's ring, while * `enabled` (the control can take focus at all). The control ORs it into its own focus * state. */ export declare function usePinnedFocus(enabled?: boolean): boolean; export interface InteractionOverrideProps { /** Every kit control in the subtree renders as if a pointer hovered it. */ hovered?: boolean; /** Every kit control in the subtree renders its keyboard focus (the focus ring, or the field's own focused look). */ focused?: boolean; /** Every kit control in the subtree renders as if it were held down. */ pressed?: boolean; /** The subtree that resolves the pinned states. */ children?: ReactNode; } /** * Pins hover, keyboard focus or the pressed state for every kit control in its subtree, * so a docs specimen or a visual test can show that state without a pointer or a key: * ``. The flags * combine (`hovered pressed`). Passing none gives the subtree back its real states, so an * inner provider can unpin a cell of a pinned region. It renders only a context provider: * no view, nothing painted, nothing in the accessibility tree. * * Three things to know: * - It pins the look, not the behaviour. Nothing is focused or pressed for real: no * `onPress`, `onFocus` or `onHoverIn` fires, and assistive technology hears the * control as it is. * - A disabled control stays at rest under any pin. * - Portaled overlay content (menus, dialogs, toasts) is outside the subtree and keeps * its real states. */ export declare function InteractionOverride({ hovered, focused, pressed, children }: InteractionOverrideProps): ReactNode; //# sourceMappingURL=interaction-override.d.ts.map