import { Placement } from "@floating-ui/dom"; //#region src/utilities/anchored-surface.d.ts export interface AnchoredSurface { /** The element the surface is positioned against. */ anchor: Element; /** The element that carries the surface's own `data-placement` attribute, usually the component host. */ host: Element; /** The floating element to position. */ surface: HTMLElement; /** The arrow rendered inside the surface. */ arrow: HTMLElement; /** The preferred placement. The surface shifts away from it when there isn't room. */ placement: Placement; /** The distance of the surface from its anchor. */ distance: number; /** The offset of the surface along its anchor. */ offset: number; } /** * Positions a floating surface and its arrow against an anchor, then records the placement it settled on as * `data-placement` on the host — which is both the hook consumers style against and what the transform-origin styles * key on. Every arrow-bearing surface positions itself this way; the middleware stack and the arrow's static side are * decided here rather than in each component. */ export declare function positionAnchoredSurface({ anchor, host, surface, arrow, placement, distance, offset: offsetAlongAnchor }: AnchoredSurface): Promise; //#endregion