import { Quaternion } from '@galacean/effects-math/es/core/quaternion'; import type { Vector2 } from '@galacean/effects-math/es/core/vector2'; import { Vector3 } from '@galacean/effects-math/es/core/vector3'; import * as spec from '@galacean/effects-specification'; import type { ColorStop } from '../../utils'; import type { BezierEasing } from '../bezier'; import { BezierPath, BezierQuat } from '../bezier'; export interface KeyFrameMeta { curves: ValueGetter[]; index: number; max: number; lineSegCount: number; curveCount: number; } export declare class ValueGetter { static getAllData(meta: KeyFrameMeta, halfFloat?: boolean): Uint16Array | Float32Array; constructor(arg: any); onCreate(props: any): void; getIntegrateValue(t0: number, t1: number, timeScale?: number): T; getIntegrateByTime(t0: number, time: number): T; getValue(time?: number): T; getMaxTime(): number; toUniform(meta: KeyFrameMeta): Float32Array; map(func: (n: T) => T): void; scaleXCoord(scale: number): ValueGetter; toData(): ArrayLike; } export declare class StaticValue extends ValueGetter { private value; onCreate(arg: number): void; getIntegrateValue(t0: number, t1: number, ts: number): number; getIntegrateByTime(t0: number, t1: number): number; getValue(time?: number): number; toUniform(): Float32Array; map(func: (n: number) => number): this; getMaxTime(): number; } export declare class RandomSetValue extends ValueGetter { private items; onCreate(arg: T[]): void; getValue(t: number): T; map(func: (v: T) => T): this; } export declare class RandomValue extends ValueGetter { private min; private max; onCreate(props: [min: number, max: number]): void; getValue(time?: number, seed?: number): number; getIntegrateValue(t0: number, t1: number, timeScale?: number): number; toUniform(): Float32Array; map(func: any): this; } export declare class RandomVectorValue extends ValueGetter { private min; private max; onCreate(props: [min: number[], max: number[]]): void; getValue(time: number): number[]; map(func: any): this; } export declare class LinearValue extends ValueGetter { private min; private max; private xCoord; onCreate(props: [min: number, max: number]): void; getValue(t: number): number; toUniform(): Float32Array; getIntegrateValue(t0: number, t1: number, timeScale?: number): number; getIntegrateByTime(t0: number, t1: number): number; map(func: (num: number) => number): this; scaleXCoord(scale: number): LinearValue; } export declare class GradientValue extends ValueGetter { stops: ColorStop[]; onCreate(props: spec.GradientStop[] | Record): void; getStops(): ColorStop[]; getValue(time: number): number[]; } export declare class LineSegments extends ValueGetter { isLineSeg: boolean; keys: number[][]; onCreate(props: ({ time: number; value: number; } & number[])[]): void; getValue(time: number): number; getIntegrateValue(t0: number, t1: number, ts?: number): number; getIntegrateByTime(t0: number, t1: number): number; private integrate; toData(): Float32Array; toUniform(meta: any): Float32Array; map(func: (k: number) => number): this; scaleXCoord(scale: number): this; } export declare class PathSegments extends ValueGetter { keys: number[][]; values: number[][]; onCreate(props: number[][][]): void; getValue(time: number): number[]; calculateVec(i: number, dt: number): number[]; } export declare class BezierCurvePath extends ValueGetter { curveSegments: Record; keys: number[][]; keyTimeData: string[]; onCreate(props: spec.BezierCurvePathValue): void; getValue(time: number): Vector3; getPercValue(curveKey: string, time: number): number; getMaxTime(): number; } export declare class BezierCurveQuat extends ValueGetter { curveSegments: Record; onCreate(props: spec.BezierCurveQuatValue): void; getValue(time: number): Quaternion; getPercValue(curveKey: string, time: number): number; getMaxTime(): number; } export declare function getKeyFrameMetaByRawValue(meta: KeyFrameMeta, value?: [type: spec.ValueType, value: any]): void; export declare function createKeyFrameMeta(): { curves: never[]; index: number; max: number; lineSegCount: number; curveCount: number; };