/**
 * @file Tooltip.tsx
 * @input Uses React, useTooltip hook
 * @output Exports Tooltip component for hover/focus triggered tooltips
 * @position Layer component; uses display:contents wrapper to avoid cloneElement
 *
 * SYNC: When modified, update these files to stay in sync:
 * - /packages/core/src/Tooltip/index.ts
 * - /apps/storybook/stories/Tooltip.stories.tsx
 * - /packages/cli/assets/templates/blocks/components/Tooltip/ (showcase blocks)
 */
import React, { type ReactElement, type ReactNode } from 'react';
import { type TooltipFocusTrigger } from './useTooltip';
import type { LayerAlignment, LayerPlacement } from '../Layer/useLayer';
export type { TooltipFocusTrigger } from './useTooltip';
export interface TooltipProps {
    /**
     * The trigger element(s). Children refs are preserved.
     * When `anchorRef` is provided, children can be omitted and the tooltip
     * attaches to the external ref element as a sibling.
     */
    children?: ReactNode;
    /**
     * External ref to use as the tooltip anchor.
     * When provided (and no children), the tooltip attaches to this element
     * instead of wrapping children. This enables sibling-mode rendering,
     * useful for lazy-loaded tooltips that shouldn't remount children.
     */
    anchorRef?: React.RefObject<HTMLElement | null>;
    /**
     * Content to display in the tooltip.
     * Typically short, non-interactive text.
     */
    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 200
     */
    delay?: number;
    /**
     * Delay before hiding after mouse/focus leave (ms)
     * @default 0
     */
    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?: TooltipFocusTrigger;
    /**
     * Whether the tooltip is enabled.
     * When false, hover/focus triggers are disabled.
     *
     * @default true
     */
    isEnabled?: boolean;
    /**
     * Callback fired when tooltip 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 tooltip (hover/focus hide is suppressed)
     * - `false`: force-hide the tooltip
     * - `undefined`: uncontrolled — hover/focus triggers manage visibility
     */
    isOpen?: boolean;
    /**
     * Whether the tooltip should be shown on mount.
     * The tooltip is still dismissible — this just opens it initially.
     */
    isDefaultOpen?: boolean;
}
/**
 * Tooltip component for displaying informative text on hover/focus.
 *
 * Uses inverted colors (dark background, light text) for high contrast.
 * Uses a display:contents wrapper so children refs are preserved.
 * Uses CSS anchor positioning and the Popover API for optimal performance.
 *
 * @example
 * ```
 * <Tooltip content="Helpful tooltip text" placement="above">
 *   <Button>Hover me</Button>
 * </Tooltip>
 * ```
 */
export declare function Tooltip({ children, anchorRef, content, placement, alignment, delay, hideDelay, focusTrigger, isEnabled, onOpenChange, hasHoverIndication, isOpen, isDefaultOpen, }: TooltipProps): ReactElement;
export declare namespace Tooltip {
    var displayName: string;
}
//# sourceMappingURL=Tooltip.d.ts.map