declare const SHUFFLE_TEXT_DEFAULT_SYMBOLS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()";
interface ShuffleTextFrameOptions {
    charStartFrameOffset?: number;
    shuffleFrameCount?: number;
    symbols?: string;
    pickSymbol?: () => string;
}
interface UseShuffleTextOptions extends ShuffleTextFrameOptions {
    frameMs?: number;
    startDelayMs?: number;
    enabled?: boolean;
}
declare function getShuffleTextAtFrame(text: string, frame: number, { charStartFrameOffset, shuffleFrameCount, pickSymbol, }: ShuffleTextFrameOptions): {
    chars: string[];
    isComplete: boolean;
};
/**
 * Matrix-style character shuffle reveal. Resets when `text` changes.
 */
declare function useShuffleText(text: string, options?: UseShuffleTextOptions): {
    chars: string[];
    isComplete: boolean;
};

export { SHUFFLE_TEXT_DEFAULT_SYMBOLS, type ShuffleTextFrameOptions, type UseShuffleTextOptions, getShuffleTextAtFrame, useShuffleText };
