export interface NumberFunction { compute(c: C): number; } export interface MinMaxNumberFunction extends NumberFunction { minValue(): number; maxValue(): number; } export declare namespace MinMaxNumberFunction { function is(obj: unknown): obj is MinMaxNumberFunction; } export interface CubicSpline extends NumberFunction { min(): number; max(): number; mapAll(visitor: CubicSpline.CoordinateVisitor): CubicSpline; calculateMinMax(): void; } export declare namespace CubicSpline { type CoordinateVisitor = (f: NumberFunction) => NumberFunction; function fromJson(obj: unknown, extractor: (obj: unknown) => NumberFunction): Constant | MultiPoint; class Constant implements CubicSpline { private readonly value; constructor(value: number); compute(): number; min(): number; max(): number; mapAll(): this; calculateMinMax(): void; } class MultiPoint implements CubicSpline { coordinate: NumberFunction; locations: number[]; values: CubicSpline[]; derivatives: number[]; private calculatedMin; private calculatedMax; constructor(coordinate: NumberFunction, locations?: number[], values?: CubicSpline[], derivatives?: number[]); compute(c: C): number; min(): number; max(): number; mapAll(visitor: CubicSpline.CoordinateVisitor): CubicSpline; addPoint(location: number, value: number | CubicSpline, derivative?: number): this; calculateMinMax(): void; private static linearExtend; } } //# sourceMappingURL=CubicSpline.d.ts.map