import { $Values } from 'utility-types' ; import { Padding } from '../../utils/dimensions' ; public export const Placement = Object . freeze ( { Top : 'top' as const , Bottom : 'bottom' as const , Left : 'left' as const , Right : 'right' as const , TopStart : 'top-start' as const , TopEnd : 'top-end' as const , BottomStart : 'bottom-start' as const , BottomEnd : 'bottom-end' as const , RightStart : 'right-start' as const , RightEnd : 'right-end' as const , LeftStart : 'left-start' as const , LeftEnd : 'left-end' as const , Auto : 'auto' as const , AutoStart : 'auto-start' as const , AutoEnd : 'auto-end' as const , } ) ; public export type Placement = $Values < typeof Placement > ; internal export type AnchorPosition = { /**
     * the right position of anchor
     */ x : number ; /**
     * the top position of the anchor
     */ y : number ; /**
     * the width of the anchor
     */ width : number ; /**
     * the height of the anchor
     */ height : number ; } ; internal export interface PortalAnchorRef { /**
     * Positioning values relative to `anchorRef`. Return `null` if tooltip is not visible.
     */ position : AnchorPosition | null ; defaultValue ref : HTMLElement | null ; } public export interface TooltipPortalSettings < B = never > { defaultValue `right`  {@link (Placement:type) | Placement.Right} placement ? : Placement ; /**
     * If given tooltip placement is not suitable, these `Placement`s will
     * be used as fallback placements.
     */ fallbackPlacements ? : Placement [ ] ; defaultValue boundary ? : HTMLElement | B ; defaultValue boundaryPadding ? : Partial < Padding > | number ; defaultValue offset ? : number ; }