/** * Minimal document interface covering the methods used internally by VirtualNode. * Using a local interface avoids structural incompatibilities between the real DOM * `Document` type and `IDocumentFactory` while still providing meaningful type safety. */ export interface VirtualNodeOwnerDocument { createElement(tagName: string): unknown; createTextNode(text: string): unknown; createDocumentFragment(): unknown; defaultView?: Window | null; } /** * Interface for VirtualNode subclasses that support custom element lifecycle callbacks. * Declared here so VirtualNode can call them without circular imports. */ export interface VirtualLifecycleCallbacks { connectedCallback?(): void; disconnectedCallback?(): void; attributeChangedCallback?(name: string, oldValue: string | null, newValue: string | null): void; } /** * Interface for VirtualHTMLElement constructor statics. */ export interface VirtualElementConstructor { tagName?: string; observedAttributes?: string[]; } /** * Registers the factory function used to create VirtualTextNode instances. * Called by VirtualTextNode module initialization to break the circular dependency * between VirtualNode and VirtualTextNode. */ export declare function registerTextNodeFactory(factory: (text: string) => VirtualNode): void; export declare class VirtualNode { nodeName: string; ownerDocument: VirtualNodeOwnerDocument | null; private _parentNode; private _childNodes; private _isConnected; private _rootConnected; constructor(nodeName?: string); get parentNode(): VirtualNode | null; get parentElement(): VirtualNode | null; get childNodes(): VirtualNode[] & { forEach: Array["forEach"]; }; get nextSibling(): VirtualNode | null; get previousSibling(): VirtualNode | null; get firstChild(): VirtualNode | null; get isConnected(): boolean; get textContent(): string | null; set textContent(value: string | null); /** * Marks this node as a connected root (like document body or remote document root). * When set to true, this node and all its descendants become "connected". */ setRootConnected(connected: boolean): void; private _isAncestorConnected; private _updateConnected; private _adoptChild; private static _propagateOwnerDocument; private _removeChildInternal; private static _isFragment; append(...nodes: VirtualNode[]): void; prepend(...nodes: VirtualNode[]): void; appendChild(child: VirtualNode): VirtualNode; insertBefore(newNode: VirtualNode, referenceNode: VirtualNode | null): VirtualNode; removeChild(child: VirtualNode): VirtualNode; replaceChild(newChild: VirtualNode, oldChild: VirtualNode): VirtualNode; remove(): void; } //# sourceMappingURL=VirtualNode.d.ts.map