import * as _angular_core from '@angular/core'; type Unit = 'chars' | 'words'; type Direction = 'top' | 'bottom'; type Piece = { readonly kind: 'piece'; readonly text: string; } | { readonly kind: 'space'; readonly text: string; }; /** * Reveals text by splitting it into chars or words and animating each * piece in from a blurred / offset state through a brief mid-step into * the steady state. Triggers when the host enters the viewport. * * @example * ```html * * ``` * * @see https://www.reactbits.dev/text-animations/blur-text */ declare class WrBlurText { /** Text to animate. Required. */ readonly text: _angular_core.InputSignal; /** Split granularity. @default 'words' */ readonly animateBy: _angular_core.InputSignal; /** Entry direction. `'top'` slides down into place; `'bottom'` slides up. @default 'top' */ readonly direction: _angular_core.InputSignal; /** Per-piece stagger in ms. @default 200 */ readonly delay: _angular_core.InputSignalWithTransform; /** Duration of each keyframe step in seconds (total = 2 × stepDuration). @default 0.35 */ readonly stepDuration: _angular_core.InputSignalWithTransform; /** CSS easing function. @default 'linear' (matches reactbits' identity easing) */ readonly easing: _angular_core.InputSignal; /** `IntersectionObserver.threshold` (0..1). @default 0.1 */ readonly threshold: _angular_core.InputSignalWithTransform; /** `IntersectionObserver.rootMargin`. @default '0px' */ readonly rootMargin: _angular_core.InputSignal; /** Emitted once all pieces finish animating. */ readonly animationComplete: _angular_core.OutputEmitterRef; protected readonly pieces: _angular_core.Signal; private readonly host; private readonly destroyRef; private readonly isBrowser; private readonly platform; private hasAnimated; constructor(); private startObserver; private animate; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { WrBlurText };