import { Placement } from '@popperjs/core';
import { UsePopperProps } from '../popper';
export interface UseTooltipProps {
    hideDelay?: number;
    showDelay?: number;
    hideOnClick?: boolean;
    hideOnMouseDown?: boolean;
    onShow?(): void;
    onHide?(): void;
    placement?: Placement;
    id?: string;
    isOpen?: boolean;
    defaultIsOpen?: boolean;
    arrowSize?: UsePopperProps['arrowSize'];
    label?: string;
}
export declare function useTooltip(props?: UseTooltipProps): {
    isOpen: boolean;
    show: () => void;
    hide: () => void;
    placement: Placement;
    getTriggerProps: (props?: Record<string, any>) => {
        ref: (value: any) => void;
        onMouseOut: (event: unknown) => void;
        onMouseOver: (event: unknown) => void;
        onClick: (event: unknown) => void;
        onMouseDown: (event: unknown) => void;
        onFocus: (event: unknown) => void;
        onBlur: (event: unknown) => void;
        'aria-describedby': string | undefined;
    };
    getTooltipProps: (props?: Record<string, any>) => {
        id: string;
        role: string;
        ref: (value: HTMLDivElement) => void;
        style: any;
    };
    getArrowProps: (props?: Record<string, any>) => {
        ref: (value: HTMLDivElement) => void;
        style: any;
    };
};
export declare type UseTooltipReturn = ReturnType<typeof useTooltip>;
