import type { EasingType, IArea, ICurve, ICustomPath2D, IGraphic, ILine, ILineAttribute, IRect, IRectAttribute } from '@visactor/vrender-core';
import { ACustomAnimate } from './custom-animate';
import type { IPoint } from '@visactor/vutils';
export declare class StreamLight extends ACustomAnimate<any> {
    valid: boolean;
    target: IGraphic;
    rect: IRect;
    line: ILine;
    area: IArea;
    constructor(from: any, to: any, duration: number, easing: EasingType, params?: {
        attribute?: Partial<IRectAttribute | ILineAttribute>;
        streamLength?: number;
        isHorizontal?: boolean;
    });
    getEndProps(): Record<string, any>;
    onStart(): void;
    onStartLineOrArea(type: 'line' | 'area'): void;
    onStartRect(): void;
    onBind(): void;
    onEnd(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
    protected onUpdateRect(end: boolean, ratio: number, out: Record<string, any>): void;
    protected onUpdateLineOrArea(end: boolean, ratio: number, out: Record<string, any>): void;
    protected _onUpdateLineOrAreaWithCache(customPath: ICustomPath2D, g: ILine | IArea, end: boolean, ratio: number, out: Record<string, any>): void;
    protected _updateCurves(customPath: ICustomPath2D, curves: ICurve<IPoint>[], totalLen: number, ratio: number): void;
    protected _onUpdateLineWithoutCache(customPath: ICustomPath2D, line: ILine, end: boolean, ratio: number, out: Record<string, any>): void;
}
