/**
 * Retrieves the global `document` object or a specific property of it.
 * @param propertyName - The name of the `document` property to retrieve (optional).
 * @returns The `document` object or the specified property.
 */
export declare function getDocument<E>(): Document & E;
export declare function getDocument<K extends keyof Document>(propertyName: K): Document[K];
/**
 * Retrieves the global `window` object or a specific property of it.
 * @param propertyName - The name of the `window` property to retrieve (optional).
 * @returns The `window` object or the specified property.
 */
export declare function getWindow<E>(): Window & E;
export declare function getWindow<K extends keyof Window>(propertyName: K): Window[K];
export declare function getWindow<R = unknown>(propertyName: string): R;
/**
 * Sets the global `document` object.
 * @param document - The `document` object to set.
 */
export declare function setDocument(document: Document): void;
/**
 * Sets the global `window` object.
 * @param window - The `window` object to set.
 */
export declare function setWindow(window: Window): void;
/**
 * Retrieves the OffscreenCanvas constructor from the injected window.
 * Falls back to globalThis if window doesn't have it.
 */
export declare function getOffscreenCanvas(): typeof OffscreenCanvas;
/**
 * Retrieves the Path2D constructor from the injected window.
 * Falls back to globalThis if window doesn't have it.
 */
export declare function getPath2D(): typeof Path2D;
/**
 * Retrieves the DOMMatrix constructor from the injected window.
 * Falls back to globalThis if window doesn't have it.
 */
export declare function getDOMMatrix(): typeof DOMMatrix;
/**
 * Retrieves the Image constructor from the injected window.
 * Falls back to globalThis if window doesn't have it.
 */
export declare function getImage(): typeof HTMLImageElement;
/**
 * Retrieves the ResizeObserver constructor from the injected window.
 * Falls back to globalThis if window doesn't have it.
 * Returns undefined in SSR environments without a polyfill.
 */
export declare function getResizeObserver(): typeof ResizeObserver | undefined;
/**
 * SSR-safe check for whether an object is a DOM Node.
 * Uses duck-typing via nodeType property instead of instanceof.
 */
export declare function isNode(obj: unknown): obj is Node;
/**
 * SSR-safe check for whether an object is a DOM Element.
 * Uses duck-typing via nodeType property instead of instanceof.
 */
export declare function isElement(obj: unknown): obj is Element;
/**
 * SSR-safe check for whether an object is a DocumentFragment (e.g. Shadow DOM root).
 * Uses duck-typing via nodeType property instead of instanceof.
 */
export declare function isDocumentFragment(obj: unknown): obj is DocumentFragment;
/**
 * SSR-safe check for whether an object is an HTMLElement.
 * Uses duck-typing via nodeType and style property instead of instanceof.
 */
export declare function isHTMLElement(obj: unknown): obj is HTMLElement;
