import * as _angular_core from '@angular/core';
type WrDecryptTextAnimateOn = 'hover' | 'click' | 'view' | 'inViewHover';
type WrDecryptTextRevealDirection = 'start' | 'end' | 'center';
type WrDecryptTextClickMode = 'once' | 'toggle';
/**
* Reveals a string by scrambling characters and progressively replacing
* scramble glyphs with the originals. Supports sequential reveal in
* three directions, or non-sequential "settle" after N iterations, and
* four trigger modes (hover, click, view, in-view + hover).
*
* @example
* ```html
*
*
* ```
*
* @see https://www.reactbits.dev/text-animations/decrypted-text
*/
declare class WrDecryptText {
/** Text to reveal. Required. */
readonly text: _angular_core.InputSignal;
/** Tick interval in ms. @default 50 */
readonly speed: _angular_core.InputSignalWithTransform;
/** Non-sequential mode only — total scramble ticks before snapping to plain. @default 10 */
readonly maxIterations: _angular_core.InputSignalWithTransform;
/** Reveal one char per tick instead of scrambling all of them. @default false */
readonly sequential: _angular_core.InputSignalWithTransform;
/** Order in which chars are revealed in sequential mode. @default 'start' */
readonly revealDirection: _angular_core.InputSignal;
/** Scramble using only the glyphs present in `text` (minus spaces). @default false */
readonly useOriginalCharsOnly: _angular_core.InputSignalWithTransform;
/** Pool of glyphs to scramble through (used when `useOriginalCharsOnly` is false). */
readonly characters: _angular_core.InputSignal;
/** When to start the animation. @default 'hover' */
readonly animateOn: _angular_core.InputSignal;
/** Click behaviour. `'once'` decrypts then stops; `'toggle'` flips state on each click. @default 'once' */
readonly clickMode: _angular_core.InputSignal;
private readonly displayText;
private readonly revealedIndices;
private readonly isAnimating;
private readonly isDecrypted;
private readonly direction;
/** Per-char render data. */
protected readonly chars: _angular_core.Signal<{
ch: string;
revealed: boolean;
}[]>;
/** Sequential reverse order — captured when reverse starts. */
private reverseOrder;
private reversePointer;
private iterationCount;
private intervalId;
private hasAnimatedOnce;
private readonly host;
private readonly destroyRef;
private readonly isBrowser;
private readonly platform;
constructor();
protected onMouseEnter(): void;
protected onMouseLeave(): void;
protected onClick(): void;
private setupIntersectionObserver;
private triggerHoverDecrypt;
private resetToPlain;
private triggerDecrypt;
private triggerReverse;
private encryptInstantly;
private startInterval;
private stopInterval;
private tick;
private nextSequentialIndex;
private shuffle;
static ɵfac: _angular_core.ɵɵFactoryDeclaration;
static ɵcmp: _angular_core.ɵɵComponentDeclaration;
}
export { WrDecryptText };
export type { WrDecryptTextAnimateOn, WrDecryptTextClickMode, WrDecryptTextRevealDirection };