import { type IPointLike } from '@visactor/vutils';
import type { ISegment, EasingType } from '@visactor/vrender-core';
import { ACustomAnimate } from './custom-animate';
export declare class TagPointsUpdate extends ACustomAnimate<{
    points?: IPointLike[];
    segments?: ISegment[];
}> {
    protected fromPoints: IPointLike[];
    protected toPoints: IPointLike[];
    protected points: IPointLike[];
    protected interpolatePoints: [IPointLike, IPointLike][];
    protected newPointAnimateType: 'grow' | 'appear' | 'clip';
    protected clipRange: number;
    protected shrinkClipRange: number;
    protected clipRangeByDimension: 'x' | 'y';
    protected segmentsCache: number[];
    constructor(from: any, to: any, duration: number, easing: EasingType, params?: {
        newPointAnimateType?: 'grow' | 'appear' | 'clip';
        clipRangeByDimension?: 'x' | 'y';
    });
    private getPoints;
    onBind(): void;
    onFirstRun(): void;
    onUpdate(end: boolean, ratio: number, out: Record<string, any>): void;
}
