import { n as DisplayList } from "./displayList.js"; import { i as Scene } from "./scene.js"; import { Timeline } from "@glissade/core"; //#region src/identity.d.ts /** * The out-of-band identity stream: one optional stable id per DisplayList * command INDEX. Positional, aligned 1:1 with `displayList.commands` — command * *i* was emitted by the node whose explicit id is `ids[i]` (or `undefined` for * a node without one). Because the emit walk is stable + deterministic (the * §3.3 positional discipline `diffDisplayLists` relies on), the stream is stable * across re-emits of an unchanged graph at a given `t`. */ type NodeIdStream = readonly (string | undefined)[]; interface EmitWithIdsResult { /** Byte/deep-equal to the normal `evaluate(scene, timeline, t)` DisplayList. */ readonly displayList: DisplayList; /** Positional id stream, `ids.length === displayList.commands.length`. */ readonly ids: NodeIdStream; } /** * Opt-in instrumented emit: the SAME pure evaluation as `evaluate(scene, doc, t)`, * but additionally producing the out-of-band `NodeIdStream`. Returns * `{ displayList, ids }`. The `displayList` is byte/deep-equal to `evaluate()`'s * (the producer never alters geometry); `ids` is positional by command index. * * Off the hot path: this is a tree-shakeable subpath; the normal evaluate/render * never touches it, so canvas/export pay nothing. */ declare function emitWithIds(scene: Scene, doc: Timeline, t: number): EmitWithIdsResult; //#endregion export { EmitWithIdsResult, NodeIdStream, emitWithIds };