import { PortalProps } from '@chakra-ui/portal';
import { HTMLChakraProps, ThemingProps } from '@chakra-ui/system';
import { HTMLMotionProps } from 'framer-motion';
import { UseTooltipProps } from '@chakra-ui/react';

interface TooltipProps extends HTMLChakraProps<'div'>, ThemingProps<'Tooltip'>, UseTooltipProps {
    /**
     * The React component to use as the
     * trigger for the tooltip
     */
    children: React.ReactNode;
    /**
     * The label of the tooltip
     */
    label?: React.ReactNode;
    /**
     * The accessible, human friendly label to use for
     * screen readers.
     *
     * If passed, tooltip will show the content `label`
     * but expose only `aria-label` to assistive technologies
     */
    'aria-label'?: string;
    /**
     * If `true`, the tooltip will wrap its children
     * in a `<span/>` with `tabIndex=0`
     * @default false
     */
    shouldWrapChildren?: boolean;
    /**
     * If `true`, the tooltip will show an arrow tip
     * @default false
     */
    hasArrow?: boolean;
    /**
     * Props to be forwarded to the portal component
     */
    portalProps?: Pick<PortalProps, 'appendToParentPortal' | 'containerRef'>;
    motionProps?: HTMLMotionProps<'div'>;
    /**
     * Can only use when direction !== 'top'
     */
    arrowShadowColor?: string;
}

export { TooltipProps };
