import type { ComponentAnimator } from '../component';
import type { EasingType, IAnimateStepType, ICustomAnimate, IStage } from '@visactor/vrender-core';
import { Step } from '../step';
export declare abstract class ACustomAnimate<T> extends Step implements ICustomAnimate {
    type: IAnimateStepType;
    customFrom: T;
    params?: any;
    props?: T;
    from?: T;
    to?: T;
    constructor(customFrom: T, customTo: T, duration: number, easing: EasingType, params?: any);
    update(end: boolean, ratio: number, out: Record<string, any>): void;
    protected setProps(props: T): void;
}
export declare abstract class AComponentAnimate<T> extends ACustomAnimate<T> {
    protected _animator: ComponentAnimator;
    completeBind(animator: ComponentAnimator): void;
    stop(): void;
}
export declare abstract class AStageAnimate<T> extends ACustomAnimate<T> {
    willCallBeforeStageRender: boolean;
    willCallAfterStageRender: boolean;
    checkStatusAfterRender: boolean;
    constructor(customFrom: T, customTo: T, duration: number, easing: EasingType, params?: any);
    protected beforeStageRender(stage: IStage, canvas: HTMLCanvasElement): HTMLCanvasElement | void | null | false;
    protected afterStageRender(stage: IStage, canvas: HTMLCanvasElement): HTMLCanvasElement | void | null | false;
    onFirstRun(): void;
    stop(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
    protected _beforeStageRender: () => void;
    protected _afterStageRender: () => void;
    protected renderToStage(stage: IStage, canvas: HTMLCanvasElement): HTMLCanvasElement | void | null | false;
}
