type TextTransitionOptions = { fromText: string; targetText: string; onUpdate: (value: string) => void; onComplete?: () => void; random?: () => number; }; type TextTransitionController = { stop: () => void; }; type TextTransitionTimeline = { sourceLength: number; targetLength: number; maxLength: number; lastSourceRandomizeStartMs: number; lastRandomizeStartMs: number; collapseStartMs: number; totalDurationMs: number; }; export declare const TEXT_TRANSITION_RANDOMIZE_START_STAGGER_MS = 5; export declare const TEXT_TRANSITION_EXPAND_STAGGER_MS = 5; export declare const TEXT_TRANSITION_POST_RANDOMIZE_HOLD_MS = 10; export declare const TEXT_TRANSITION_COLLAPSE_STAGGER_MS = 10; export declare const TEXT_TRANSITION_REFRESH_MS = 16; export declare const getTextTransitionRandomizeStartMs: (index: number, sourceLength: number, targetLength: number) => number | null; export declare const getTextTransitionTimeline: (fromText: string, targetText: string) => TextTransitionTimeline; export declare const getTextTransitionCharset: (character: string) => "abcdefghijklmnopqrstuvwxyz" | "ABCDEFGHIJKLMNOPQRSTUVWXYZ" | "0123456789" | "#%&^+=-" | null; export declare const getRandomTransitionCharacter: (character: string, random?: () => number) => string; export declare const buildTextTransitionFrame: (fromText: string, targetText: string, elapsedMs: number, random?: () => number) => string; export declare const runTextTransition: ({ fromText, targetText, onUpdate, onComplete, random, }: TextTransitionOptions) => TextTransitionController; export type { TextTransitionController, TextTransitionOptions, TextTransitionTimeline, }; //# sourceMappingURL=textTransition.d.ts.map