import { RadiantElement } from '@ecopages/radiant'; import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter'; import type { RuiPlacement } from '../shared/placement'; export type RuiHoverCardOpenChangeDetail = { open: boolean; }; export type RuiHoverCardProps = { /** Whether the card is open (controlled). */ open?: boolean; /** Placement of the card relative to its anchor. Default: `bottom-start`. */ placement?: RuiPlacement; /** Delay in ms before showing on hover/focus. Default: `600`. */ delay?: number; /** Delay in ms before hiding after pointer/focus leaves. Default: `200`. */ closeDelay?: number; /** Teleport the surface to `document.body`. Default: `true`. */ portal?: boolean; /** Suppress hover/focus preview interactions. */ disabled?: boolean; /** Accessible name for the preview dialog. Default: `Preview`. */ contentLabel?: string; }; /** * Default accessible name for the preview dialog. * * @remarks Must match the host `@prop` default: the SSR view seeds * `content-label` with it so the dialog is named before hydration. */ export declare const HOVER_CARD_DEFAULT_CONTENT_LABEL = "Preview"; /** * `` — a floating preview surfaced on hover or focus. * * Unlike `rui-tooltip`, the card can hold rich, interactive content (links, * avatars, buttons). It is not an APG tooltip: the panel does not use * `role="tooltip"` and may receive pointer and keyboard focus while open. * * Preview timing uses a shared warmup/cooldown model shared with `rui-tooltip`: the first * preview waits for `delay`, then subsequent previews open immediately until the post-close * cooldown elapses. Touch pointers open on long press. * * @element rui-hover-card * @attr {boolean} disabled - Suppress hover/focus preview interactions. Default: `false`. * @attr {string} content-label - Accessible name for the preview dialog. Default: `Preview`. * @fires rui-open-change - Emitted when open state changes; `detail.open`. * @cssclass rui-hover-card - Root wrapper. * @cssclass rui-hover-card__trigger - Host wrapper for the trigger. * @cssclass rui-hover-card__content - Floating preview surface. */ export declare class RuiHoverCard extends RadiantElement { open: boolean; placement: RuiPlacement; delay: number; closeDelay: number; portal: boolean; disabled: boolean; contentLabel: string; contentTarget: HTMLElement; openChangeEvent: EventEmitter; private readonly contentId; private controller; private showTimer; private hideTimer; private longPressTimer; private openedByKeyboard; connectedCallback(): void; protected onConnected(): void; disconnectedCallback(): void; private clearTimers; private getAnchor; private getFloatingElement; private ensureController; syncCard(): void; private syncContentPointerBridge; setOpen(next: boolean, emit?: boolean): void; private scheduleShow; private scheduleHide; private isTouchPointer; onDocumentKeydown(event: KeyboardEvent): void; onFocusIn(): void; onFocusOut(event: FocusEvent): void; onHostKeydown(event: KeyboardEvent): void; onPointerEnter(event: PointerEvent): void; onPointerLeave(event: PointerEvent): void; onPointerDown(event: PointerEvent): void; onPointerUp(): void; }