import { type Placement, type Strategy } from '@floating-ui/react'; import type { ElementType, JSXElementConstructor, ReactNode } from 'react'; import type { ChildrenProps, ClickEvent, ElementTypeProp, SpiritPolymorphicElementPropsWithRef, StyleProps, TransferProps } from './shared'; export declare const TOOLTIP_TRIGGER: { readonly CLICK: "click"; readonly HOVER: "hover"; readonly FOCUS: "focus"; readonly MANUAL: "manual"; readonly OUTSIDE_PRESS: "outside-press"; readonly ESCAPE_KEY: "escape-key"; }; export interface TooltipPopoverProps extends ChildrenProps, StyleProps { } export type TooltipTriggerType = 'click' | 'hover' | 'focus' | 'manual'; export interface TooltipTriggerProps extends StyleProps, TransferProps { elementType?: ElementTypeProp; children?: string | ReactNode | ((props: { isOpen: boolean; }) => ReactNode); } export interface UncontrolledTooltipProps extends BaseTooltipProps { } export interface TooltipCloseButtonProps extends StyleProps { onClick?: (event: ClickEvent) => void; label?: string; } export interface TooltipHandlingProps { isOpen?: boolean; onToggle: (isOpen: boolean) => void; } export interface BaseTooltipProps extends ChildrenProps, StyleProps { closeLabel?: string; id: string; isDismissible?: boolean; placement?: Placement; } export interface TooltipProps extends BaseTooltipProps, TooltipHandlingProps { elementType?: E | JSXElementConstructor; } export type SpiritTooltipProps = TooltipProps & SpiritPolymorphicElementPropsWithRef> & ChildrenProps & { enableFlipping?: boolean; enableFlippingCrossAxis?: boolean; enableShifting?: boolean; enableSizing?: boolean; flipFallbackAxisSideDirection?: 'none' | 'start' | 'end'; flipFallbackPlacements?: Placement | Placement[]; isFocusableOnHover?: boolean; positionStrategy?: Strategy; trigger?: TooltipTriggerType[]; };