import { Boundary, Placement, RootBoundary } from '@floating-ui/vue'; import { DirectiveBinding } from '../../node_modules/vue'; import { BPopoverProps } from 'bootstrap-vue-next'; export { autoUpdate } from '@floating-ui/vue'; /** * Map a Floating UI placement to its Bootstrap placement keyword. * * @param placement - The Floating UI placement (e.g. `'left-start'`). * @returns The Bootstrap placement keyword (`'start'`, `'end'`, or the side). */ export declare const resolveBootstrapPlacement: (placement: Placement) => string; /** * Map a Floating UI placement to its Bootstrap caret direction keyword. * * @param placement - The Floating UI placement (e.g. `'top-start'`). * @returns The Bootstrap caret keyword (`'start'`, `'end'`, `'up'`, `'down'`, or the side). */ export declare const resolveBootstrapCaret: (placement: Placement) => string; /** * Tell whether a directive binding leaves the popover/tooltip active. * * @param values - The directive binding value. * @returns `false` only when the value is an object with `active: false`. */ export declare const resolveActiveStatus: (values: DirectiveBinding["value"]) => boolean; /** * Resolve the title and body content for a popover/tooltip directive. * * Falls back to the element's `title` attribute (moved to `data-original-title`) * when the binding provides no content of its own. * * @param values - The directive binding value. * @param el - The element the directive is bound to. * @returns The resolved `title` and `body`, or an empty object when inactive. */ export declare const resolveContent: (values: DirectiveBinding["value"], el: HTMLElement) => { title?: string; body?: string; }; /** * Build the `BPopover` props from a directive binding and its element. * * @param binding - The directive binding, whose modifiers drive placement and behavior. * @param el - The element the popover targets. * @returns The props passed to the rendered `BPopover`. */ export declare const resolveDirectiveProps: (binding: Readonly, el: Readonly) => any; export interface ElementWithPopper extends HTMLElement { $__element?: HTMLElement; $__binding?: string; } /** * Render a `BPopover` into a fresh container placed relative to the element. * * The container goes on `document.body`, inside the element, or after it, * depending on the `body`/`child` modifiers, and is stored on the element * for later teardown. * * @param el - The element the popover is bound to. * @param binding - The directive binding whose modifiers pick the mount point. * @param props - The `BPopover` props to render. */ export declare const bind: (el: ElementWithPopper, binding: Readonly, props: BPopoverProps) => void; /** * Unmount the popover previously rendered by `bind` and remove its container. * * @param el - The element the popover was bound to. */ export declare const unbind: (el: ElementWithPopper) => void; /** * Tell whether an input is a Floating UI `Boundary`. * * @param input - The value to test. * @returns `true` for `'clippingAncestors'`, an `Element`, or an array. */ export declare const isBoundary: (input: unknown) => input is Boundary; /** * Tell whether an input is a Floating UI `RootBoundary` rather than a `Boundary`. * * @param input - The value to test. * @returns `true` when the value is not a `Boundary`. */ export declare const isRootBoundary: (input: Boundary | RootBoundary) => input is RootBoundary;