/**
* 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