/** * Spark primitives — one-shot canon-themed terminal accents. * * @remarks * A spark is a finite frame sequence rendered exactly once, typically at * a meaningful command boundary: success, awaken, integrity-sweep complete. * Unlike spinners (which loop until stopped) and progress bars (which read * an external ratio), sparks own their own short timeline and decay back * to empty. * * Canon names align with workshop vocabulary (NEXUS-CORE-ASPECTS.md): * - `awaken` — radial bloom from center; played on `cleo init` / * first daemon dream / sentient wake-up. * - `sweep` — left-to-right beam clearing the line; played when a * BRAIN integrity sweep finishes. * - `cascade` — diagonal fall from upper-left; played on * command-success accents (release-shipped, task-complete). * - `weave` — alternating-row interlock; played on playbook stage * transitions and CANT directive acceptance. */ /** * Canon spark identifier. */ export type SparkName = 'awaken' | 'sweep' | 'cascade' | 'weave'; /** * One spark: a finite frame sequence + per-frame interval. */ export interface Spark { /** Canon name. */ readonly name: SparkName; /** Ordered frames; rendered exactly once, in order. */ readonly frames: readonly string[]; /** Milliseconds to hold each frame before advancing. */ readonly interval: number; } /** * Spark registry keyed by canon name. */ export declare const sparks: Record; /** * Total wall-clock duration of a spark in milliseconds. * * @param name - Spark name * @returns `frames.length * interval` */ export declare function sparkDurationMs(name: SparkName): number; //# sourceMappingURL=spark.d.ts.map