import type { ReactNode } from "react";
import type { AvailableSizes } from "../../shared/types";
export type TooltipSide = "top" | "right" | "bottom" | "left";
export type TooltipClassNames = {
    content?: string;
    trigger?: string;
    arrow?: string;
};
export interface TooltipProps {
    /** Content rendered inside the tooltip surface. */
    content: ReactNode;
    /** Trigger element. If omitted, a default info icon trigger is rendered. */
    children?: ReactNode;
    /** Semantic size controlling padding and arrow radius. */
    size?: Exclude<AvailableSizes, "large">;
    /** Preferred side to display the tooltip. */
    side?: TooltipSide;
    /** Delay in ms before opening on hover/focus. */
    delayDuration?: number;
    /** Collision padding for viewport/surface boundaries. */
    collisionPadding?: number;
    /** Optional className overrides for internal parts. */
    classNames?: TooltipClassNames;
    /** Accessible label for the default icon trigger. Ignored when a custom trigger is provided. */
    "aria-label"?: string;
}
export type TooltipSize = NonNullable<TooltipProps["size"]>;
