import type { CSSProperties } from 'vue'; import type { Placement } from '../../types'; export interface ElementRect { top: number; bottom: number; left: number; right: number; width: number; height: number; } export type TriggerPopupTranslate = [number, number] | { [key in Placement]?: [number, number]; }; interface ScrollRect { top: number; bottom: number; left: number; right: number; scrollTop: number; scrollBottom: number; scrollLeft: number; scrollRight: number; width: number; height: number; } export declare const getElementScrollRect: (element: HTMLElement, containerRect: DOMRect) => { top: number; bottom: number; left: number; right: number; scrollTop: number; scrollBottom: number; scrollLeft: number; scrollRight: number; width: number; height: number; }; export declare const getTransformOrigin: (position: Placement) => string; export declare const getPopupStyle: (position: Placement, containerRect: DOMRect, triggerRect: ScrollRect, popupRect: ScrollRect, { offset, translate, customStyle, autoFitPosition, }?: { offset?: number | undefined; translate?: TriggerPopupTranslate | undefined; customStyle?: CSSProperties | undefined; autoFitPosition?: boolean | undefined; }) => { style: CSSProperties; position: Placement; }; export declare const getArrowStyle: (position: Placement, triggerRect: ScrollRect, popupRect: ScrollRect, { customStyle, }: { customStyle?: CSSProperties | undefined; }) => CSSProperties; export declare const isScrollElement: (element: HTMLElement) => boolean; export declare const getScrollElements: (container: HTMLElement | undefined) => HTMLElement[]; export {};