export declare function setAttributeIfChanged(element: Element, name: string, value: string | number | boolean): void; export declare function removeAttributeIfPresent(element: Element, name: string): void; export declare function setPropertyIfChanged(object: T, key: K, value: T[K]): void; export declare function setStylePropertyIfChanged(style: CSSStyleDeclaration, property: string, value: string): void; export declare function removeStylePropertyIfPresent(style: CSSStyleDeclaration, property: string): void; type ViewPort = { left: number; right: number; top: number; bottom: number; }; export declare const getFirstVisibleNodeForPositionRelativeTo: (documentOrElement: Document | Element, viewport: ViewPort) => { node: Node; offset: number; } | undefined; export declare const getRangeFromNode: (node: Node, offset: number) => Range | undefined; export declare const isPointerEvent: (event: Event) => event is PointerEvent; export declare const isMouseEvent: (event: Event) => event is MouseEvent; export declare const isTouchEvent: (event: Event) => event is TouchEvent; export declare const noopElement: () => HTMLDivElement; export declare const getElementsWithAssets: (_document: Document | null | undefined) => Element[]; export declare const revokeDocumentBlobs: (_document: Document | null | undefined) => void; export declare function hasShape(obj: unknown, requiredProps: (keyof T)[], optionalMethods?: (keyof T)[]): obj is T; export declare function isHtmlElement(element: unknown): element is HTMLElement; export declare function isHtmlTagElement(element: unknown, tagName: K): element is HTMLElementTagNameMap[K]; export declare function isHtmlRange(element: unknown): element is Range; export declare const injectCSS: (doc: Document, id: string, style: string, prepend?: boolean) => () => void; export declare const removeCSS: (doc: Document, id: string) => void; export {};