import type { color } from '../color'; import type { vec3, vec2, vec4 } from '@predy-js/render-interface'; import type { KeyFrame, KeyFrameMeta } from './ValueGetterBase'; import { ValueType } from '@predy-js/specification'; import { BezierValueGetter } from './BezierPathValueGetter'; import { ValueGetter, createKeyFrameMeta, getKeyFrameMetaByRawValue } from './ValueGetterBase'; import { HermitCurveValue, hermitEvaluate } from './HermitValueGetter'; export { ValueGetter, KeyFrame, KeyFrameMeta, hermitEvaluate, createKeyFrameMeta, getKeyFrameMetaByRawValue, HermitCurveValue, }; export declare function getWrappedValue(val: any): T; interface ValueGetterMap { [ValueType.BEZIER]: BezierValueGetter; [ValueType.BEZIER_PATH]: BezierSegments; [ValueType.CONSTANT]: StaticValue; [ValueType.GRADIENT_COLOR]: GradientValue; [ValueType.COLORS]: RandomSetValue; [ValueType.RANDOM]: RandomValue; [ValueType.RGBA_COLOR]: StaticVec; [ValueType.CONSTANT_VEC2]: StaticVec; [ValueType.CONSTANT_VEC3]: StaticVec; [ValueType.CONSTANT_VEC4]: StaticVec; [ValueType.BINARY_BEZIER]: BezierValueGetter; [ValueType.BINARY_BEZIER_PATH]: BezierSegments; } /** * * @param args params with type * @example * const v = createValueGetter([ValueType.BEZIER,[[0, 1, 0.405, 0.326, 1, 0],[0.294, 1, 0.243, 0.468, 0.572, 0.181, 0.998, 0.371]]]); * v.getValue(0.5) */ export declare function createValueGetter(args: [type: T, value: any] | number | ValueGetterMap[T]): ValueGetterMap[T]; export declare class StaticValue extends ValueGetter { _value: number; onCreate(arg: number): void; getIntegrateValue(t0: number, t1: number, ts: number): number; getIntegrateByTime(t0: number, t1: number): number; getValue(time?: number): number; toUniform(meta: any): Float32Array; map(func: (n: number) => number): this; } export declare class StaticVec extends ValueGetter { protected _value: T; onCreate(v: T): void; getValue(time?: number): T; } export declare class RandomSetValue extends ValueGetter { _items: T[]; onCreate(arg: T[]): void; getValue(t: any): T; map(func: any): this; } export declare class RandomValue extends ValueGetter { _min: number; _max: number; onCreate(props: [min: number, max: number]): void; getValue(time?: number): number; toUniform(meta: any): Float32Array; map(func: any): this; } export declare class RandomVectorValue extends ValueGetter { _min: number[]; _max: number[]; onCreate(props: [min: number[], max: number[]]): void; getValue(time: any): number[]; map(func: any): this; } export declare class GradientValue extends ValueGetter { stops: { color: color; stop: number; }[]; tempColor: vec4; onCreate(props: any): void; getStops(): { color: import("@predy-js/specification").vec4; stop: number; }[]; getValue(time: number): import("@predy-js/specification").vec4; } export declare class PathSegments extends ValueGetter { keys: KeyFrame[]; values: Array; onCreate(props: any): void; getValue(time: number): vec3; _calculateVec(i: any, dt: any): vec3; } export declare class BezierSegments extends PathSegments { cps: number[][]; onCreate(props: any): void; _calculateVec(i: any, t: any): vec3; }