/** Keep in sync with `--og-duration-stream` / `.og-stream-ink` in styles. */ export declare const INK_FADE_MS: number; /** @deprecated Use {@link INK_FADE_MS}. */ export declare const WORD_ANIMATION_MS: number; export type StreamReveal = { /** Register the full current source text; new suffix becomes an ink batch. */ observe(text: string, now: number): void; /** * CSS animation-delay (ms) for the run covering `offset`, or null when that * ink has settled and should render as plain text. Negative = resume mid-fade. */ delayFor(offset: number, now: number): number | null; /** True while any batch is still inside its fade window. */ hasActive(now: number): boolean; }; export declare function createStreamReveal(): StreamReveal; type HastText = { type: "text"; value: string; position?: { start?: { offset?: number | undefined; } | undefined; } | undefined; }; type HastParent = { type: string; tagName?: string; value?: string; children?: HastChild[]; }; type HastChild = (HastText | HastParent) & Record; export declare function rehypeStreamReveal(options: { reveal: StreamReveal; now: number; }): (tree: HastParent) => void; export {};