/**
 * Ensures that vTree is not recycled during a render cycle. This effectively
 * allocates a VTree to a DOM node representation for as long as it's needed.
 *
 * @param {VTree} vTree
 * @return {void}
 */
export function protectVTree(vTree: VTree): void;
/**
 * Recycles a VTree by unprotecting itself, removing its DOM Node reference,
 * and recursively unprotecting all nested children. Resets the VTree
 * attributes and childNode properties as these can contribute to unwanted
 * increases in the heap.
 *
 * @param {VTree} vTree
 * @return {void}
 */
export function unprotectVTree(vTree: VTree): void;
/**
 * Collects any unused VTrees and puts them back into circulation. Scrubs all
 * attributes and childNodes from the object to minimize memory impact. This
 * function is scheduled after each render with either setTimeout or
 * requestIdleCallback.
 *
 * This is also called automatically during tests to ensure all objects are
 * tracked correctly.
 *
 * @return {void}
 */
export function gc(): void;
import { VTree } from "./types";
