/** Timing for one block's reveal. */ export interface TextRevealOptions { /** How fast one line is wiped in (ms per line). */ perLineMs?: number; /** Lower bound on the wipe (ms). */ minMs?: number; /** Upper bound on the wipe (ms): a long block must not crawl. */ maxMs?: number; /** Delay before the wipe starts (ms). */ delayMs?: number; } /** * Reveal one text block line by line under a clip mask. Belongs to text that * appears ONCE - a thought body being expanded, a welcome headline - because text * the user is already reading must never be re-revealed. * * The wipe is timed from the block's own box: the line count is estimated from * its rendered height and its line-height, so a long thought prints slowly and a * two-line block does not crawl. Where there is no layout (jsdom) it degrades to * the lower bound, and without WAAPI it is a no-op that still reports the timing. * @param el - the block to reveal. * @param options - timing overrides. * @returns the wipe duration in ms. */ export declare function revealTextBlock(el: HTMLElement, options?: TextRevealOptions): number;