import { HTMLAttributes, ReactNode, RefObject } from 'react';
import { OverlayProps } from 'react-aria';
import { Props } from '../../tasty';
import { CubeTooltipProviderProps } from '../overlays/Tooltip/TooltipProvider';
export type AutoTooltipValue = string | boolean | (Omit<CubeTooltipProviderProps, 'children'> & {
    auto?: boolean;
});
export interface UseAutoTooltipOptions {
    tooltip: AutoTooltipValue | undefined;
    children: ReactNode;
    labelProps?: Props;
    isDynamicLabel?: boolean;
}
export declare function useAutoTooltip({ tooltip, children, labelProps, isDynamicLabel, }: UseAutoTooltipOptions): {
    labelRef: (element: HTMLElement | null) => void;
    labelProps: {
        [x: string]: any;
    };
    isLabelOverflowed: boolean;
    isAutoTooltipEnabled: boolean;
    hasTooltip: boolean;
    renderWithTooltip: (renderElement: (tooltipTriggerProps?: HTMLAttributes<HTMLElement>, tooltipRef?: RefObject<HTMLElement>) => ReactNode, defaultTooltipPlacement: OverlayProps["placement"]) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
};
