import React, { MouseEventHandler, ReactNode } from 'react';
import { COLORS, SIZES } from '../../constants';
declare type Position = 'bottom' | 'horizontal' | 'left' | 'right' | 'top' | 'vertical';
export declare const POSITIONS: Record<string, Position>;
export declare type AllowedColor = Exclude<typeof COLORS[number], 'teal'> | 'white' | 'inverse';
export declare type AllowedSize = Exclude<typeof SIZES[number], 'tiny' | 'fullscreen' | 'smallest' | 'hero'>;
interface TooltippedComponentProps {
    children?: ReactNode;
    className?: string;
    onClick?: MouseEventHandler;
    onMouseEnter?: MouseEventHandler;
    onMouseLeave?: MouseEventHandler;
    onTooltipEntered?: () => void;
    tooltip: ReactNode;
    tooltipColor?: AllowedColor;
    tooltipHideOnClick?: boolean;
    tooltipIcon?: ReactNode;
    tooltipPosition?: Position;
    tooltipShowOnClick?: boolean;
    tooltipSize?: AllowedSize;
    documentObject: Document;
    tooltipShowDelay?: number;
    /** The z-index of the Tooltip */
    zIndex?: number;
    tooltipActive?: boolean;
    ComposedComponent: React.ElementType;
}
export interface TooltipProps extends Omit<TooltippedComponentProps, 'ComposedComponent' | 'documentObject'> {
}
declare function Tooltip<E extends keyof JSX.IntrinsicElements>(ComposedComponent: E): React.ComponentType<JSX.IntrinsicElements[E] & TooltipProps>;
declare function Tooltip<P>(ComposedComponent: React.ElementType<P>): React.ComponentType<P & TooltipProps>;
export default Tooltip;
