/**
* @param {globalThis} windowObj?
* @param {boolean=} force
*/
export function addPolyfill(windowObj?: typeof globalThis, force?: boolean | undefined): void;
/**
* @param {globalThis} windowObj?
*/
export function patchAdoptNode(windowObj?: typeof globalThis): void;
/**
* @param {Node} node
* @param {DOMQuadInit} quad
* @param {Element} from
* @param {{fromBox?: 'margin'|'border'|'padding'|'content', toBox?: 'margin'|'border'|'padding'|'content', iframes?: HTMLIFrameElement[]}=} options
* @returns {DOMQuad}
*/
export function convertQuadFromNode(node: Node, quad: DOMQuadInit, from: Element, options?: {
    fromBox?: "margin" | "border" | "padding" | "content";
    toBox?: "margin" | "border" | "padding" | "content";
    iframes?: HTMLIFrameElement[];
} | undefined): DOMQuad;
/**
* @param {Node} node
* @param {{x: number, y: number, width: number, height: number}} rect
* @param {Element} from
* @param {{fromBox?: 'margin'|'border'|'padding'|'content', toBox?: 'margin'|'border'|'padding'|'content', iframes?: HTMLIFrameElement[]}=} options
* @returns {DOMQuad}
*/
export function convertRectFromNode(node: Node, rect: {
    x: number;
    y: number;
    width: number;
    height: number;
}, from: Element, options?: {
    fromBox?: "margin" | "border" | "padding" | "content";
    toBox?: "margin" | "border" | "padding" | "content";
    iframes?: HTMLIFrameElement[];
} | undefined): DOMQuad;
/**
* @param {Node} node
* @param {DOMPointInit} point
* @param {Element} from
* @param {{fromBox?: 'margin'|'border'|'padding'|'content', toBox?: 'margin'|'border'|'padding'|'content', iframes?: HTMLIFrameElement[]}=} options
* @returns {DOMPoint}
*/
export function convertPointFromNode(node: Node, point: DOMPointInit, from: Element, options?: {
    fromBox?: "margin" | "border" | "padding" | "content";
    toBox?: "margin" | "border" | "padding" | "content";
    iframes?: HTMLIFrameElement[];
} | undefined): DOMPoint;
export function clearCache(): void;
export function useCache(): void;
/**
* @param {Node} node
* @param {{box?: 'margin'|'border'|'padding'|'content', relativeTo?: Element, iframes?: HTMLIFrameElement[]}=} options
* @returns {DOMQuad[]}
*/
export function getBoxQuads(node: Node, options?: {
    box?: "margin" | "border" | "padding" | "content";
    relativeTo?: Element;
    iframes?: HTMLIFrameElement[];
} | undefined): DOMQuad[];
/**
* @param {Node} node
* @param {DOMMatrix=} matrix
*/
export function getElementSize(node: Node, matrix?: DOMMatrix | undefined): {
    width: number;
    height: number;
};
/**
* @param {Node} node
* @param {Element} ancestor
* @param {HTMLIFrameElement[]} iframes
* @param {boolean=} excludeSelfZoom
*/
export function getResultingTransformationBetweenElementAndAllAncestors(node: Node, ancestor: Element, iframes: HTMLIFrameElement[], excludeSelfZoom?: boolean | undefined): DOMMatrix;
/**
 * @param {Node} element
* @param {HTMLIFrameElement[]=} iframes
*/
export function getElementCombinedTransform(element: Node, iframes?: HTMLIFrameElement[] | undefined): DOMMatrix;
