import { type KeyboardEvent, type MouseEvent, type PointerEvent, type ReactElement, type ReactNode } from "react"; type TriggerProps = { onClick?: ((event: MouseEvent) => void) | undefined; onPointerDown?: ((event: PointerEvent) => void) | undefined; onKeyDown?: ((event: KeyboardEvent) => void) | undefined; className?: string | undefined; disabled?: boolean | undefined; "aria-describedby"?: string | undefined; }; export interface ReasonTooltipProps { /** The explanation. One or two short sentences: why, and who can fix it. */ reason: ReactNode; /** One focusable element: a button, a link, or a badge with tabIndex 0. */ children: ReactElement; side?: "top" | "right" | "bottom" | "left" | undefined; align?: "start" | "center" | "end" | undefined; /** Hover delay in ms. Focus and touch open immediately. */ delayDuration?: number | undefined; /** * Keep it open when the trigger is clicked (default), so a click explains * rather than dismisses. Set false when the trigger also does something. */ openOnClick?: boolean | undefined; } /** A touch-safe, keyboard-reachable tooltip that explains something. */ export declare function ReasonTooltip({ reason, children, side, align, delayDuration, openOnClick, }: ReasonTooltipProps): import("react").JSX.Element; export interface DisabledReasonProps { /** Why the control can't be used, and who can change that. */ reason: ReactNode; /** When false, the control renders untouched and no tooltip is attached. */ disabled?: boolean | undefined; /** Exactly one control element (Button, Switch, icon button, link). */ children: ReactElement; side?: ReasonTooltipProps["side"] | undefined; align?: ReasonTooltipProps["align"] | undefined; } /** * Wraps a disabled control so the reason is reachable by hover, focus and * tap. The control stays focusable (`aria-disabled` instead of `disabled`) * and every activation is blocked. */ export declare function DisabledReason({ reason, disabled, children, side, align, }: DisabledReasonProps): import("react").JSX.Element; export {};