/** * JQHTML DOM Attachment Tracking * * Backs the component 'attach' / 'detach' lifecycle events. * * One document-level MutationObserver (childList + subtree) is installed the first * time any component expresses interest in attachment, and disconnected when the * last interested component is stopped or collected. The observer never inspects * mutation records: it is only a "the tree changed" tick. On each batch it walks * the tracked components and asks each to compare its root's isConnected against * its own recorded attachment state (Jqhtml_Component._attachment_check()). Cost is * O(tracked components) per mutation batch, independent of how much of the page * changed, and zero when nothing has opted in. * * Because MutationObserver delivers per microtask, a node moved synchronously * (remove + insert in one task, e.g. appendTo) never shows a transition. Only a * component whose root is actually off-document when the batch flushes is detached. * * Tracked components are held by WeakRef. A component that is removed from the * document natively (never stopped) and then dropped by everything else is therefore * collectable: the tracker pins nothing. Dead refs are pruned on the next batch. */ /** Start watching a component's root for attach/detach transitions. Idempotent. */ export declare function track_attachment(component: any): void; /** Stop watching a component (called from _stop()). Idempotent. */ export declare function untrack_attachment(component: any): void; /** Number of components currently tracked (diagnostics / tests). */ export declare function tracked_attachment_count(): number; /** Whether the document observer is currently installed (diagnostics / tests). */ export declare function attachment_observer_active(): boolean; //# sourceMappingURL=dom-attachment.d.ts.map