You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

18 lines
859 B

4 months ago
type PrimitiveInterpolatable = number;
export type Interpolatable = number | {
[key: string]: PrimitiveInterpolatable;
} | PrimitiveInterpolatable[];
export type Interpolate<T extends Interpolatable = any> = (t: number) => T;
export type Interpolator<T extends Interpolatable = any> = (from: T, to: T) => Interpolate<T>;
export declare const numberInterpolate: Interpolator<number>;
export declare function arrayInterpolate(from: PrimitiveInterpolatable[], to: PrimitiveInterpolatable[]): Interpolate<PrimitiveInterpolatable[]>;
export declare function objectInterpolate(from?: {
[keys: string]: PrimitiveInterpolatable;
}, to?: {
[keys: string]: PrimitiveInterpolatable;
}): (t: PrimitiveInterpolatable) => {
[keys: string]: number;
};
export declare function interpolate<T extends Interpolatable>(from: T, to: T): Interpolate<T>;
export {};