/**
 * @file HoverCard.tsx
 * @input Uses React, useHoverCard hook
 * @output Exports HoverCard component for hover/focus triggered layers
 * @position Layer component; uses inline-safe trigger wrapper and renders the floating layer inline
 *
 * SYNC: When modified, update these files to stay in sync:
 * - /packages/core/src/HoverCard/HoverCard.test.tsx
 * - /packages/core/src/HoverCard/index.ts
 * - /apps/storybook/stories/HoverCard.stories.tsx
 * - /packages/cli/assets/templates/blocks/components/HoverCard/ (showcase blocks)
 */
import { type ReactElement, type ReactNode } from 'react';
import { type HoverCardFocusTrigger } from './useHoverCard';
import type { LayerAlignment, LayerPlacement } from '../Layer/useLayer';
import type { BaseProps } from '../BaseProps';
export type { HoverCardFocusTrigger } from './useHoverCard';
export interface HoverCardProps extends Pick<BaseProps, 'xstyle' | 'className' | 'style'> {
    /**
     * The trigger element(s). Children refs are preserved.
     */
    children: ReactNode;
    /**
     * Content to display in the hover card.
     */
    content: ReactNode;
    /**
     * Position placement relative to anchor
     * @default 'above'
     */
    placement?: LayerPlacement;
    /**
     * Alignment along the placement axis
     * @default 'center'
     */
    alignment?: LayerAlignment;
    /**
     * Delay before showing on hover (ms)
     * @default 300
     */
    delay?: number;
    /**
     * Delay before hiding after mouse/focus leave (ms)
     * @default 200
     */
    hideDelay?: number;
    /**
     * When to trigger on focus:
     * - `auto`: Only if element is naturally focusable
     * - `always`: Always attach focus listeners
     * - `never`: Never attach focus listeners (for composite widgets)
     *
     * @default 'auto'
     */
    focusTrigger?: HoverCardFocusTrigger;
    /**
     * Whether the hover card is enabled.
     * When false, hover/focus triggers are disabled.
     *
     * @default true
     */
    isEnabled?: boolean;
    /**
     * Accessible name for the hover card popup.
     *
     * When provided, the popup is exposed to assistive technology as a named
     * `role="dialog"`. When omitted, the popup falls back to `role="group"` —
     * a group may validly be unnamed, an unnamed dialog may not.
     */
    label?: string;
    /**
     * Callback fired when hover card visibility changes.
     * Called with `true` when shown and `false` when hidden.
     */
    onOpenChange?: (isOpen: boolean) => void;
    /**
     * Whether to show hover indication (dashed underline) on the trigger.
     * - `'auto'`: Show for text-only children
     * - `true`: Always show
     * - `false`: Never show
     *
     * @default 'auto'
     */
    hasHoverIndication?: 'auto' | boolean;
    /**
     * Controlled open state. When provided, overrides hover/focus triggers:
     * - `true`: force-show the hover card (hover/focus hide is suppressed)
     * - `false`: force-hide the hover card
     * - `undefined`: uncontrolled — hover/focus triggers manage visibility
     */
    isOpen?: boolean;
    /**
     * Whether the hover card should be shown on mount.
     * The hover card is still dismissible — this just opens it initially.
     */
    isDefaultOpen?: boolean;
}
/**
 * HoverCard component for displaying interactive content on hover/focus.
 *
 * Uses a display:contents wrapper so children refs are preserved.
 * Uses CSS anchor positioning and the Popover API for optimal performance.
 *
 * @example
 * ```
 * <HoverCard
 *   content={<ProfileCard user={user} />}
 *   placement="above">
 *   <Button>Hover me</Button>
 * </HoverCard>
 * ```
 */
export declare function HoverCard({ children, content, placement, alignment, delay, hideDelay, focusTrigger, isEnabled, label, onOpenChange, hasHoverIndication, isOpen, isDefaultOpen, xstyle, className, style, }: HoverCardProps): ReactElement;
export declare namespace HoverCard {
    var displayName: string;
}
//# sourceMappingURL=HoverCard.d.ts.map