import { OnInit, ElementRef, OnDestroy, SimpleChanges, OnChanges } from '@angular/core';
import * as i0 from "@angular/core";
export declare type NcAnimationType = 'fadeIn' | 'blurIn' | 'blurInUp' | 'blurInDown' | 'slideUp' | 'slideDown' | 'slideLeft' | 'slideRight' | 'scaleUp' | 'scaleDown';
export declare type NcByType = 'text' | 'word' | 'character' | 'line';
export declare class AnimateTextComponent implements OnInit, OnDestroy, OnChanges {
    private elementRef;
    /** 展示的文本内容 */
    ncText: string;
    /** 延迟 */
    ncDelay: number;
    /** 动画类型 */
    ncAnimation: NcAnimationType;
    /** 动画分割方式 */
    ncBy: NcByType;
    /** 每个分割块动画持续时间 */
    ncDuration: number;
    /** 每个分割块之间的延迟(按text分割) */
    ncDelayMultipleByText: number;
    /** 每个分割块之间的延迟(按word分割) */
    ncDelayMultipleByWord: number;
    /** 每个分割块之间的延迟(按character分割) */
    ncDelayMultipleByCharacter: number;
    /** 每个分割块之间的延迟(按line分割) */
    ncDelayMultipleByLine: number;
    /** 是否在视图可见时才开始动画 */
    private _startOnView;
    set ncStartOnView(val: boolean | string);
    get ncStartOnView(): boolean;
    /** 是否只执行一次动画 */
    private _once;
    set ncOnce(val: boolean | string);
    get ncOnce(): boolean;
    segments: string[];
    segmentStates: string[];
    private observer;
    private timeout;
    private staggerTimings;
    constructor(elementRef: ElementRef);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private start;
    private clear;
    private splitText;
    private setupIntersectionObserver;
    private getSegmentDelay;
    getSegmentState(index: number): string;
    getSegmentClass(index: number): string;
    getAnimationParams(index: number): any;
    private animateIn;
    private animateOut;
    static ɵfac: i0.ɵɵFactoryDeclaration<AnimateTextComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AnimateTextComponent, "nc-animate-text", never, { "ncText": "ncText"; "ncDelay": "ncDelay"; "ncAnimation": "ncAnimation"; "ncBy": "ncBy"; "ncDuration": "ncDuration"; "ncDelayMultipleByText": "ncDelayMultipleByText"; "ncDelayMultipleByWord": "ncDelayMultipleByWord"; "ncDelayMultipleByCharacter": "ncDelayMultipleByCharacter"; "ncDelayMultipleByLine": "ncDelayMultipleByLine"; "ncStartOnView": "ncStartOnView"; "ncOnce": "ncOnce"; }, {}, never, never>;
}
