import type { VFXElement } from "./types.js"; export type FreezeHooks = { /** Show the element's plain content while it is frozen. */ showPlain(e: VFXElement): void; /** Hide the plain content again, restoring `opacity` for DOM elements. */ hidePlain(e: VFXElement, opacity: string): void; isRegistered(e: VFXElement): boolean; }; /** Tracks the roots frozen by `freezeInside`, including elements added under them later. */ export declare class FreezeTracker { #private; constructor(hooks: FreezeHooks); /** * Freeze the elements inside `root`, and any added under it until the undo. * Returns a function that undoes it. */ freezeInside(root: HTMLElement, elements: readonly VFXElement[]): () => void; /** * Freeze a new element if it sits under a frozen root. * `hiddenOpacity` is the opacity it gets once unfrozen; null keeps the current one. * Returns whether it was frozen. */ adopt(e: VFXElement, hiddenOpacity: string | null): boolean; }