import { IDocumentFactory, IElementLike, INodeLike } from "./DocumentInterface"; import { NetworkedDOMWebsocketAdapter, NetworkedDOMWebsocketOptions } from "./NetworkedDOMWebsocket"; /** * Shared state and element management logic for both V01 and V02 websocket adapters. * * Subclasses handle protocol-specific concerns: message encoding/decoding, event * format, hidden element placeholders (V02), and batch mode (V02). */ export declare abstract class NetworkedDOMWebsocketAdapterBase implements NetworkedDOMWebsocketAdapter { protected readonly websocket: WebSocket; protected readonly parentElement: IElementLike; protected readonly connectedCallback: () => void; protected readonly timeCallback?: ((time: number) => void) | undefined; protected readonly options: NetworkedDOMWebsocketOptions; protected idToElement: Map; protected elementToId: Map; protected currentRoot: INodeLike | null; protected readonly docFactory: IDocumentFactory; protected pendingPortalChildren: Map; protected elementFactoryOverride: Map; constructor(websocket: WebSocket, parentElement: IElementLike, connectedCallback: () => void, timeCallback?: ((time: number) => void) | undefined, options?: NetworkedDOMWebsocketOptions, doc?: IDocumentFactory); abstract receiveMessage(event: MessageEvent): void; abstract handleEvent(element: IElementLike, event: CustomEvent): void; clearContents(): boolean; /** * Creates a text node, registers it in the id maps, and returns it. */ protected createTextNode(nodeId: number, text: string, factory: IDocumentFactory): INodeLike; /** * Inserts elements into the correct position within a parent, using * previousElement/nextElement for positioning. Creates a DocumentFragment * when inserting before a reference node. */ protected insertElements(targetForChildren: IElementLike, elementsToAdd: INodeLike[], previousElement: INodeLike | null, nextElement: INodeLike | null, factory: IDocumentFactory): void; /** * Recursively removes element-to-id mappings for all descendants of a parent. * V02 overrides this to also handle hidden placeholder elements. */ protected removeChildElementIds(parent: INodeLike): void; /** * Called during removeChildElementIds when a child has no registered id. * V01 logs an error. V02 overrides to check for placeholder elements. */ protected handleUnregisteredChild(child: INodeLike): void; /** * Resets state and applies a snapshot element to the parent. * Appending to the tree triggers MElement connectedCallbacks (which set up portals), * then pending portal children are flushed. */ protected resetAndApplySnapshot(element: INodeLike): void; } //# sourceMappingURL=NetworkedDOMWebsocketAdapterBase.d.ts.map