type OverlayPlacement = "top" | "bottom" | "right" | "left" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "right-start" | "right-end"; interface OverlayOptions { /** * Whether the element should render an arrow. * @default false */ showArrow?: boolean; /** * The additional offset applied along the main axis between the element and its * anchor element. * @default 7 (px) - if `showArrow` is true the default value is 10 (px) */ offset?: number; /** * The additional offset applied along the cross axis between the element and its * anchor element. * @default 0 */ crossOffset?: number; /** * Whether the element should flip its orientation (e.g. top to bottom or left to right) when * there is insufficient room for it to render completely. * @default true */ shouldFlip?: boolean; /** * The placement of the element with respect to its anchor element. * @default 'top' */ placement?: OverlayPlacement; /** * The placement padding that should be applied between the element and its * surrounding container. * @default 12 */ containerPadding?: number; /** Handler that is called when the overlay should close. */ onClose?: () => void; } export { OverlayOptions, OverlayPlacement };