import type{Placement}from'@floating-ui/dom'; /** * Where the arrow sits along the popup's edge. * * - `anchor` — tracks the anchor's centre, the position Floating UI's `arrow` middleware computes. * - `start` / `end` — pinned `arrow-padding` from one logical end of that edge. On a top/bottom * placement the two ends are the inline ones, so they swap under RTL; on a left/right placement * they are the block ends, which do not. * - `center` — pinned to the middle of the edge regardless of where the anchor is. */ export type LyraArrowPlacement='anchor'|'start'|'end'|'center';export type OverlayArrowSide='top'|'bottom'|'left'|'right';export interface OverlayArrowOptions{ /** The placement Floating UI actually used, which `flip()` may have changed. */ placement:Placement; /** The `arrow` middleware's offsets within the popup, present only for `arrowPlacement: 'anchor'`. */ coords:{x?:number;y?:number;}|undefined; /** Whether an arrow is being rendered at all. */ enabled:boolean;arrowPlacement:LyraArrowPlacement;arrowPadding:number; /** Whether the popup's own resolved direction is RTL, which mirrors `start`/`end` on an * inline-axis edge. */ rtl:boolean; /** The component-scoped custom property holding half the arrow's width. */ sizeProperty:string; /** Optional legacy component-scoped property retained behind the mapped public property. */ fallbackSizeProperty?:string;} /** * Positions a popup's arrow element for the placement that was actually used, and returns the * resolved side so the caller can put it in the arrow's part name. Physical inset properties are * written here on purpose: the arrow's own offsets are computed in physical pixels by Floating UI, * and mixing them with logical properties would leave two competing insets active on the same axis * under RTL. The logical intent of `start`/`end` is resolved to a physical side by `rtl` instead. */ export declare function applyOverlayArrow(arrowElement:HTMLElement|null,options:OverlayArrowOptions):OverlayArrowSide;