import { AccessibilityProps, Side } from '../shared/index.js';

interface TooltipProps {
    open?: boolean;
    defaultOpen?: boolean;
    onOpenChange?: (open: boolean) => void;
    placement?: Side;
    delayDuration?: number;
}
interface TooltipAPI {
    /** Current open state */
    state: {
        open: boolean;
    };
    /** Props to spread on the trigger element */
    triggerProps: Partial<AccessibilityProps> & {
        'aria-describedby': string;
    };
    /** Props to spread on the content element */
    contentProps: {
        role: 'tooltip';
        id: string;
    };
    /** Resolved placement */
    placement: Side;
    /** Open the tooltip */
    open: () => void;
    /** Close the tooltip (and clear any pending delay) */
    close: () => void;
    /** Open with delay */
    openWithDelay: () => void;
    /** The configured delay duration */
    delayDuration: number;
    /** Cancel any pending delay timer */
    cancelDelay: () => void;
}
declare function createTooltip(props?: TooltipProps): TooltipAPI;

declare const tooltipContentVariants: (props?: ({
    side?: "top" | "right" | "bottom" | "left" | undefined;
} & {
    className?: string;
}) | undefined) => string;

export { type TooltipAPI, type TooltipProps, createTooltip, tooltipContentVariants };
