import React from 'react';
import { CustomTokenTypes } from '../../../types/customToken/customToken';
import { TooltipAlignType } from '../types/tooltipAlign';
import { TooltipVariantStylesProps } from '../types/tooltipTheme';
type UseTooltipType<V> = {
    labelRef: React.RefObject<HTMLDivElement>;
    tooltipRef: React.RefObject<HTMLDivElement>;
    variant: V;
    onOpenClose?: (open: boolean) => void;
    align?: TooltipAlignType;
    tooltipAsModal?: boolean;
} & Omit<CustomTokenTypes<TooltipVariantStylesProps>, 'cts' | 'extraCt'>;
type UseTooltipReturnType = {
    showTooltip: () => void;
    hideTooltip: () => void;
    allowFocusOpenTooltip: React.MutableRefObject<boolean>;
    open: boolean;
};
/**
 * @name useTooltip
 * @description
 * Hook to handle the tooltip functionality
 * @param {UseTooltipType} props
 * @returns {UseTooltipReturnType}
 */
export declare const useTooltip: <V>({ align, ...props }: UseTooltipType<V>) => UseTooltipReturnType;
export {};
