/** * "AI is writing" reveal of a freshly generated slide. * * Non-text elements (pictures, shapes, lines, charts, formulas…) pop in one * after another with a tiny stagger; panels behind text wait for their copy. * Text boxes are then typed out and tables * are filled cell by cell, in element order. The store is written directly on * every frame (no history snapshots, host `onChange` muted) and the final * content lands through the regular `slides.update` command once, so undo and * autosave only ever see the finished slide. */ import type { Slide } from '../types/slides'; export interface FikaRevealOptions { /** Badge text shown next to the caret (host-localized). Omit for no badge. */ label?: string; /** Aborting jumps straight to the finished slide. */ signal?: AbortSignal; /** Typing speed in characters per second. Default 80. */ charsPerSecond?: number; /** Upper bound for the whole reveal in ms. Default 9000. */ maxDurationMs?: number; /** `false` skips the animation and applies the slide at once. */ animate?: boolean; } export interface RevealDeps { /** Suppress host change notifications while frames are written. */ mute(): void; unmute(): void; /** Apply the finished slide through the command pipeline (history + change event). */ commit(slideId: string, patch: Partial): Promise; isDestroyed(): boolean; } export declare function revealSlide(slideId: string, patch: Partial, options: FikaRevealOptions, deps: RevealDeps): Promise;