import { Emitable, NonNullNodeRange } from "./render.js"; import { Nullish } from "./types.js"; export { FragmentIndex, RemoveHooks, ref, postpone, setRemoveManager, processHookQueue }; interface FragmentIndex { fragmentIndex: number; lastFragmentIndex: number; } declare type Effector = (() => T) | ((node: Node) => T) | ((node: Node, fi: FragmentIndex) => T); declare const removeHooks: () => ({ manager: typeof Promise.all | Nullish; hooks: ((x: Array | Nullish>) => void)[]; }); declare type RemoveHooks = ReturnType; declare function setRemoveManager(cb: typeof Promise.all): void; declare type Life = (life: { asap: (cb: Effector) => void; rendered: (cb: Effector) => void; reflowed: (cb: Effector) => void; removing: (cb: Effector>) => void; }) => Emitable; declare function ref(cb: Life): import("./render.js").ComponentResult; declare function postpone(what: "rendered" | "reflowed", fn: Effector, nr: NonNullNodeRange): void; declare function postpone(what: "removing", fn: Effector | Nullish>, nr: NonNullNodeRange): void; declare function processHookQueue(queue: (Effector | NonNullNodeRange)[]): void;