import * as spec from '@galacean/effects-specification'; import { Vector2 } from '@galacean/effects-math/es/core/vector2'; import { BezierEasing } from '../bezier'; import type { KeyFrameMeta } from './value-getter'; import { ValueGetter } from './value-getter'; interface CurveInfo { points: Vector2[]; timeInterval: number; valueInterval: number; curve: BezierEasing; timeStart: number; timeEnd: number; } export interface Keyframe { time: number; value: number; inSlope: number; outSlope: number; inWeight: number; outWeight: number; weightedMode: WeightedMode; tangentMode: TangentMode; } export declare enum TangentMode { Cubic = 0, Linear = 1, Constant = 2 } export declare enum WeightedMode { None = 0, In = 1, Out = 2, Both = 3 } export declare class BezierCurve extends ValueGetter { curveMap: Record; keys: number[][]; private keyFrames; private curveInfos; onCreate(props: spec.BezierKeyframeValue[]): void; getValue(time: number): number; getIntegrateValue(t0: number, t1: number, ts?: number): number; getIntegrateByTime(t0: number, t1: number): number; getCurveIntegrateValue(curveKey: string, time: number): number; toUniform(meta: KeyFrameMeta): Float32Array; toData(): Float32Array; getMaxTime(): number; } export declare function oldBezierKeyFramesToNew(props: spec.BezierKeyframeValue[]): Keyframe[]; export {};