import { Interval } from './Interval.js'; export interface BoundedFloatFunction { compute(c: C): number; range(): Interval; } export interface CubicSpline extends BoundedFloatFunction { range(): Interval; mapCoordinates(visitor: CubicSpline.CoordinateVisitor): CubicSpline; } export declare namespace CubicSpline { type CoordinateVisitor = (f: BoundedFloatFunction) => BoundedFloatFunction; function fromJson(obj: unknown, extractor: (obj: unknown) => BoundedFloatFunction): Constant | MultiPoint; class Constant implements CubicSpline { private readonly value; constructor(value: number); compute(): number; range(): Interval; mapCoordinates(): this; } class MultiPoint implements CubicSpline { coordinate: BoundedFloatFunction; locations: number[]; values: CubicSpline[]; derivatives: number[]; constructor(coordinate: BoundedFloatFunction, locations?: number[], values?: CubicSpline[], derivatives?: number[]); compute(c: C): number; mapCoordinates(visitor: CubicSpline.CoordinateVisitor): CubicSpline; addPoint(location: number, value: number | CubicSpline, derivative?: number): this; range(): Interval; private static linearExtend; } } //# sourceMappingURL=CubicSpline.d.ts.map