import { FadeIn } from './fade';
import type { EasingType } from '@visactor/vrender-core';
import { ACustomAnimate } from './custom-animate';
export declare class StoryFadeIn extends FadeIn {
}
export interface ISlideAnimationOptions {
    direction?: 'top' | 'bottom' | 'left' | 'right';
    distance?: number;
    fromOpacity?: number;
}
export interface IGrowAnimationOptions {
    fromScale?: number;
    direction?: 'x' | 'y' | 'xy';
    fromOpacity?: number;
}
export interface ISpinAnimationOptions {
    fromAngle?: number;
    fromScale?: number;
    fromOpacity?: number;
}
export interface IStrokeAnimationOptions {
    lineWidth?: number;
    strokeColor?: string;
    fromOpacity?: number;
    dashLength?: number;
    showFill?: boolean;
    fillOpacity?: number;
}
export interface IPulseAnimationOptions {
    pulseCount?: number;
    pulseOpacity?: number;
    pulseScale?: number;
    pulseColor?: string;
    pulseColorIntensity?: number;
    strokeOnly?: boolean;
    fillOnly?: boolean;
    useScale?: boolean;
    useOpacity?: boolean;
    useColor?: boolean;
    useStroke?: boolean;
    useFill?: boolean;
}
export declare class SlideIn extends ACustomAnimate<Record<string, number>> {
    valid: boolean;
    propKeys: string[];
    from: Record<string, number>;
    to: Record<string, number>;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: ISlideAnimationOptions);
    onBind(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export declare class GrowIn extends ACustomAnimate<Record<string, number>> {
    valid: boolean;
    propKeys: string[];
    from: Record<string, number>;
    to: Record<string, number>;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: IGrowAnimationOptions);
    onBind(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export declare class SpinIn extends ACustomAnimate<Record<string, number>> {
    valid: boolean;
    propKeys: string[];
    from: Record<string, number>;
    to: Record<string, number>;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: ISpinAnimationOptions);
    onBind(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export declare class StrokeIn extends ACustomAnimate<Record<string, any>> {
    valid: boolean;
    propKeys: string[];
    from: Record<string, any>;
    to: Record<string, any>;
    private perimeter;
    private originalAttributes;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: IStrokeAnimationOptions);
    onBind(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
    onEnd(): void;
}
export declare class StrokeOut extends ACustomAnimate<Record<string, any>> {
    valid: boolean;
    propKeys: string[];
    from: Record<string, any>;
    to: Record<string, any>;
    private perimeter;
    private originalAttributes;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: IStrokeAnimationOptions);
    onFirstRun(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export interface IMoveScaleAnimationOptions {
    slideDirection?: 'top' | 'bottom' | 'left' | 'right';
    slideDistance?: number;
    fromScale?: number;
    scaleDirection?: 'x' | 'y' | 'xy';
    slideRatio?: number;
    fromOpacity?: number;
}
export declare class MoveScaleIn extends ACustomAnimate<any> {
    valid: boolean;
    private readonly slideInDuration;
    private readonly growInDuration;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: IMoveScaleAnimationOptions);
    onBind(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export interface IMoveRotateAnimationOptions {
    slideDirection?: 'top' | 'bottom' | 'left' | 'right';
    slideDistance?: number;
    fromAngle?: number;
    fromScale?: number;
    slideRatio?: number;
    fromOpacity?: number;
}
export declare class MoveRotateIn extends ACustomAnimate<any> {
    valid: boolean;
    private readonly slideInDuration;
    private readonly spinInDuration;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: IMoveRotateAnimationOptions);
    onBind(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export declare class SlideOut extends ACustomAnimate<Record<string, number>> {
    valid: boolean;
    propKeys: string[];
    from: Record<string, number>;
    to: Record<string, number>;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: ISlideAnimationOptions & {
        toOpacity?: number;
    });
    onFirstRun(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export declare class GrowOut extends ACustomAnimate<Record<string, number>> {
    valid: boolean;
    propKeys: string[];
    from: Record<string, number>;
    to: Record<string, number>;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: IGrowAnimationOptions & {
        toOpacity?: number;
    });
    onFirstRun(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export declare class SpinOut extends ACustomAnimate<Record<string, number>> {
    valid: boolean;
    propKeys: string[];
    from: Record<string, number>;
    to: Record<string, number>;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: ISpinAnimationOptions & {
        toOpacity?: number;
    });
    onFirstRun(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export declare class MoveScaleOut extends ACustomAnimate<any> {
    valid: boolean;
    private readonly growOutDuration;
    private readonly slideOutDuration;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: IMoveScaleAnimationOptions);
    onFirstRun(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export declare class MoveRotateOut extends ACustomAnimate<any> {
    valid: boolean;
    private readonly spinOutDuration;
    private readonly slideOutDuration;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: IMoveRotateAnimationOptions);
    onFirstRun(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
export declare class PulseAnimate extends ACustomAnimate<Record<string, any>> {
    valid: boolean;
    private originalAttributes;
    private pulseCount;
    private pulseOpacity;
    private pulseScale;
    private pulseColor;
    private pulseColorIntensity;
    private strokeOnly;
    private fillOnly;
    private useScale;
    private useOpacity;
    private useStroke;
    private useFill;
    private useColor;
    private originalFill;
    private originalStroke;
    constructor(from: null, to: null, duration: number, easing: EasingType, params?: IPulseAnimationOptions);
    onBind(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
    private applyColorPulse;
    onEnd(): void;
}
