/**
 * Decrypt Effect
 * Movie-style text decryption effect with typing animation
 */
import { BaseEffect } from "../types.js";
/**
 * Configuration options for the Decrypt effect
 */
export interface DecryptEffectOptions {
    /** Duration in milliseconds */
    duration?: number;
    /** Number of characters typed per keystroke */
    typingSpeed?: number;
    /** Colors for the ciphertext (randomly selected per character) */
    ciphertextColors?: string[];
    /** Final color for decrypted text */
    finalColor?: string;
    /** Use gradient for final color */
    useGradient?: boolean;
    /** Gradient direction (vertical or horizontal) */
    gradientDirection?: "vertical" | "horizontal";
    /** Typing probability per frame (0-1) */
    typingProbability?: number;
    /** Fast reveal mode - complete animation in first portion of duration */
    fastReveal?: boolean;
    /** Percentage of duration to complete animation (0-1) when fastReveal is true */
    revealCompletionRatio?: number;
}
/**
 * Decrypt effect implementation
 */
export declare class DecryptEffect extends BaseEffect {
    readonly name = "Decrypt";
    readonly description = "Movie-style text decryption effect with typing animation";
    private options;
    private characterStates;
    private animationFrameCount;
    private totalFrames;
    private typingQueue;
    private activeTypingChars;
    private decryptingChars;
    private _isEffectComplete;
    private readonly encryptedSymbols;
    private readonly typingSymbols;
    constructor(options?: DecryptEffectOptions);
    /**
     * Initialize the pool of encrypted symbols
     */
    private initializeEncryptedSymbols;
    /**
     * Initialize the effect
     */
    protected onInitialize(): void;
    /**
     * Calculate gradient colors based on dimensions
     */
    private calculateGradientColors;
    /**
     * Render the next frame
     */
    render(): Promise<string[]>;
    /**
     * Update animation state for all characters
     */
    private updateAnimationState;
    /**
     * Update typing phase animation
     */
    private updateTypingPhase;
    /**
     * Update decryption phase animation
     */
    private updateDecryptionPhase;
    /**
     * Create visual representation of a character
     */
    private createCharacterVisual;
    /**
     * Get a random ciphertext color
     */
    private getRandomCiphertextColor;
    /**
     * Get a random encrypted symbol
     */
    private getRandomEncryptedSymbol;
    /**
     * Check if the effect is complete
     */
    private checkCompletion;
    /**
     * Shuffle array in place
     */
    private shuffleArray;
    /**
     * Get ANSI color code for a color
     */
    private getColorCode;
    /**
     * Interpolate between two colors
     */
    private interpolateColor;
    /**
     * Render fallback for when effects are disabled
     */
    renderFallback(): string[];
    /**
     * Check if effect is complete
     */
    isComplete(): boolean;
    /**
     * Reset the effect
     */
    protected onReset(): void;
}
//# sourceMappingURL=decrypt.d.ts.map