import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';
import type * as React from 'react';
declare const tooltipVariants: (props?: ({
    variant?: "primary" | "secondary" | "info" | "success" | "warning" | "destructive" | null | undefined;
    shape?: "default" | "rounded" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
declare const arrowVariants: (props?: ({
    variant?: "primary" | "secondary" | "info" | "success" | "warning" | "destructive" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
type TooltipVariant = 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'destructive';
type TooltipShape = 'default' | 'rounded';
type TooltipPosition = 'top' | 'bottom' | 'left' | 'right' | 'none';
declare function TooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.Props): import("react/jsx-runtime").JSX.Element;
declare namespace TooltipProvider {
    var displayName: string;
}
declare function TooltipRoot(props: TooltipPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
declare namespace TooltipRoot {
    var displayName: string;
}
declare function TooltipTrigger(props: TooltipPrimitive.Trigger.Props): import("react/jsx-runtime").JSX.Element;
declare namespace TooltipTrigger {
    var displayName: string;
}
interface TooltipPopupProps extends TooltipPrimitive.Popup.Props, Pick<TooltipPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'> {
    variant?: TooltipVariant;
    shape?: TooltipShape;
    /** When true or position is 'none', hides the arrow */
    hideArrow?: boolean;
}
declare function TooltipPopup({ className, side, sideOffset, align, alignOffset, variant, shape, hideArrow, children, ...props }: TooltipPopupProps): import("react/jsx-runtime").JSX.Element;
declare namespace TooltipPopup {
    var displayName: string;
}
declare function TooltipIcon({ children, className, }: {
    children: React.ReactNode;
    className?: string;
}): import("react/jsx-runtime").JSX.Element;
declare namespace TooltipIcon {
    var displayName: string;
}
declare function TooltipAvatar({ src, alt, children, className, }: {
    src?: string;
    alt: string;
    children?: React.ReactNode;
    className?: string;
}): import("react/jsx-runtime").JSX.Element;
declare namespace TooltipAvatar {
    var displayName: string;
}
declare function TooltipContent({ children, className, }: {
    children: React.ReactNode;
    className?: string;
}): import("react/jsx-runtime").JSX.Element;
declare namespace TooltipContent {
    var displayName: string;
}
declare function TooltipTitle({ children, className, }: {
    children: React.ReactNode;
    className?: string;
}): import("react/jsx-runtime").JSX.Element;
declare namespace TooltipTitle {
    var displayName: string;
}
interface TooltipSubtitleProps {
    children: React.ReactNode;
    className?: string;
    /** Variant affects subtitle opacity */
    variant?: TooltipVariant;
}
declare function TooltipSubtitle({ children, className, variant, }: TooltipSubtitleProps): import("react/jsx-runtime").JSX.Element;
declare namespace TooltipSubtitle {
    var displayName: string;
}
declare function TooltipBadge({ children, className, }: {
    children: React.ReactNode;
    className?: string;
}): import("react/jsx-runtime").JSX.Element;
declare namespace TooltipBadge {
    var displayName: string;
}
interface TooltipImageProps {
    src: string;
    alt: string;
    layout?: 'vertical' | 'horizontal';
    className?: string;
}
declare function TooltipImage({ src, alt, layout, className, }: TooltipImageProps): import("react/jsx-runtime").JSX.Element;
declare namespace TooltipImage {
    var displayName: string;
}
interface TooltipProps {
    /** The element that triggers the tooltip (required) */
    trigger: React.ReactElement;
    /** The main tooltip text */
    content: React.ReactNode;
    /** Style variant */
    variant?: TooltipVariant;
    /** Shape variant */
    shape?: TooltipShape;
    /** Arrow position - 'none' hides the arrow */
    position?: TooltipPosition;
    /** Alignment of tooltip relative to trigger */
    align?: 'start' | 'center' | 'end';
    /** Delay in ms before showing tooltip */
    delayDuration?: number;
    /** Distance from trigger */
    sideOffset?: number;
    /** Optional icon before content */
    icon?: React.ReactNode;
    /** Optional avatar - string for src or ReactNode for custom */
    avatar?: string | React.ReactNode;
    /** Optional supporting text */
    subtitle?: React.ReactNode;
    /** Optional badge element */
    badge?: React.ReactNode;
    /** Optional image */
    image?: string;
    /** Image layout - auto-detected or override */
    imageLayout?: 'vertical' | 'horizontal';
    /** Override content with custom children */
    children?: React.ReactNode;
}
/**
 * Tooltip component with dot notation for compound parts.
 *
 * @example
 * ```tsx
 * // Simple usage (recommended for most cases)
 * <Tooltip trigger={<Button>Hover me</Button>} content="Tooltip text" />
 *
 * // With variants
 * <Tooltip trigger={<Button>Save</Button>} content="Saved!" variant="success" shape="rounded" />
 *
 * // With rich content
 * <Tooltip trigger={<Button>Info</Button>} content="Title" icon={<InfoIcon />} subtitle="Description" />
 *
 * // Advanced usage with dot notation
 * <Tooltip.Root>
 *   <Tooltip.Trigger render={<Button>Hover me</Button>} />
 *   <Tooltip.Popup variant="info">
 *     <Tooltip.Icon><InfoIcon /></Tooltip.Icon>
 *     <Tooltip.Content>
 *       <Tooltip.Title>Title</Tooltip.Title>
 *       <Tooltip.Subtitle>Description</Tooltip.Subtitle>
 *     </Tooltip.Content>
 *   </Tooltip.Popup>
 * </Tooltip.Root>
 * ```
 */
declare const TooltipCompound: {
    ({ trigger, content, variant, shape, position, align, delayDuration, sideOffset, icon, avatar, subtitle, badge, image, imageLayout, children, }: TooltipProps): import("react/jsx-runtime").JSX.Element;
    displayName: string;
} & {
    Root: typeof TooltipRoot;
    Provider: typeof TooltipProvider;
    Trigger: typeof TooltipTrigger;
    Popup: typeof TooltipPopup;
    Icon: typeof TooltipIcon;
    Avatar: typeof TooltipAvatar;
    Content: typeof TooltipContent;
    Title: typeof TooltipTitle;
    Subtitle: typeof TooltipSubtitle;
    Badge: typeof TooltipBadge;
    Image: typeof TooltipImage;
};
export type { TooltipPosition, TooltipProps, TooltipShape, TooltipVariant };
export { arrowVariants, TooltipAvatar, TooltipBadge, TooltipCompound as Tooltip, TooltipContent, TooltipIcon, TooltipImage, TooltipPopup, TooltipProvider, TooltipRoot, TooltipSubtitle, TooltipTitle, TooltipTrigger, tooltipVariants, };
