import { HTMLAttributes, ReactElement, ReactNode, RefObject } from 'react';
import { Placement, TooltipTriggerProps } from 'react-aria';
export type TooltipTriggerFunction = (triggerProps: HTMLAttributes<HTMLElement>, ref: RefObject<HTMLElement>) => ReactNode;
export interface CubeTooltipTriggerProps extends TooltipTriggerProps {
    children: [ReactElement | string | TooltipTriggerFunction, ReactElement];
    crossOffset?: number;
    offset?: number;
    placement?: Placement;
    isMaterial?: boolean;
    isLight?: boolean;
    /**
     * @deprecated Use function-as-first-child pattern instead.
     * Whether the trigger should have an ActiveZone wrap to make sure it's focusable and hoverable.
     * Otherwise, tooltip won't work.
     */
    activeWrap?: boolean;
    /**
     * External ref to use instead of internal ref (optional).
     */
    targetRef?: RefObject<HTMLElement>;
    isOpen?: boolean;
    onOpenChange?: (isOpen: boolean) => void;
    defaultOpen?: boolean;
    /**
     * Whether the tooltip should be disabled, independent of the trigger.
     */
    isDisabled?: boolean;
    /**
     * The delay time for the tooltip to show up.
     * @default 1500
     */
    delay?: number;
    /**
     * The delay time for the tooltip to close.
     * @default 500
     */
    closeDelay?: number;
    /**
     * By default, opens for both focus and hover. Can be made to open only for focus.
     */
    trigger?: 'focus';
    /**
     * When true, FocusableProvider won't be applied to the trigger.
     * Useful when trigger already handles focus or uses render props pattern.
     */
    disableFocusableProvider?: boolean;
}
/**
 * TooltipTrigger wraps around a trigger element and a Tooltip. It handles opening and closing
 * the Tooltip when the user hovers over or focuses the trigger, and positioning the Tooltip
 * relative to the trigger.
 */
export declare function TooltipTrigger(props: CubeTooltipTriggerProps): import("react/jsx-runtime").JSX.Element;
