///
import { LightFlowPathProps } from '../type';
import { IColorObj } from '../../common/util/ColorUtil';
import { Tween } from '@tweenjs/tween.js';
type SvgObj = {
html: string;
svgNode: SVGSVGElement;
};
type Point = {
x: number;
y: number;
};
interface MLightFlowPathProps {
wrapper: HTMLDivElement;
refPathCtx: CanvasRenderingContext2D;
refFlowPathCtx: CanvasRenderingContext2D;
lightPathProps: LightFlowPathProps;
}
export default class LightFlowPath {
flowPathConfig: MLightFlowPathProps;
svgObj?: SvgObj;
points: Point[];
flowPath: flowPath | null;
renderFlowTimer: NodeJS.Timeout | null;
constructor(comProps: MLightFlowPathProps);
init(sizeChange?: boolean): Promise;
update(lightPathProps: LightFlowPathProps): Promise;
drawPath(): void;
clearPath(): void;
renderFlowPath(): void;
getSvgPoint(): false | undefined;
machinPoints(): false | undefined;
setSvgObj(): Promise;
destory(): void;
}
declare class flowPath {
ctx: CanvasRenderingContext2D;
points: Point[];
pathLength: number;
config: LightFlowPathProps;
length: number;
speed: number;
colorLerp?: ColorRange;
delayTimer?: NodeJS.Timeout;
offset: {
value: number;
};
tweenInstance: Tween<{
value: number;
}> | null;
animateId?: number;
constructor(ctx: CanvasRenderingContext2D, points: Point[], config: LightFlowPathProps);
init(): void;
start(): void;
cancelTweenAnimate(): void;
animate(): void;
render(): void;
clear(): void;
getColorRange(): void;
destroy(): void;
}
declare class ColorRange {
color: any;
length: number;
range: any;
constructor(color: any, length: number);
getRange(): void;
get(i: number): any;
getCurColor(start: any, inc: any): IColorObj;
getIncrement(diff: any, val: any): IColorObj;
getDiff(startColor: IColorObj, endColor: IColorObj): IColorObj;
}
export {};