// Generated by dts-bundle v0.7.3 export declare enum Theme { Dark = "dark", Light = "light" } interface ISplineOptions { theme: Theme; gridSize: number; anchorSize: number; } export declare class ImgstrySpline extends SplineProcessor implements IDisposable { static getCanvas: (selector: string | HTMLCanvasElement) => HTMLCanvasElement; constructor(_canvas: HTMLCanvasElement, _options?: ISplineOptions); add: (point: IPoint) => void; remove: (point: IPoint | null) => void; dispose(): void; } export {}; export interface IPoint { x: number; y: number; } export declare class Point implements IPoint { x: number; y: number; constructor({ x, y }?: IPoint); distanceTo: (point: IPoint) => number; } export interface IPointResult { index: number; point: IPoint | null; } export declare class SplinePointSet implements Iterable { static get notFound(): IPointResult; get first(): Point; get length(): number; constructor(points?: IPoint[]); [Symbol.iterator](): { next: () => IteratorResult; }; push(...points: IPoint[]): number; update(index: number, { x, y }: IPoint): IPointResult; find: (point: IPoint) => IPointResult; forEach: (predicateFn: (value: Point, index: number) => void) => void; remove(index: number): Point | undefined; indexOfClosest(coordinate: IPoint, maxRange: number, transform: (p: IPoint) => IPoint): number; closest: (coordinate: IPoint, maxRange: number, transform: (p: IPoint) => IPoint) => IPointResult; } export declare abstract class SplineProcessor { protected _points: SplinePointSet; constructor(width?: number); add(point: IPoint): void; remove(point: IPoint): void; lookup: () => number[]; interpolate: (predicate: (point: IPoint) => void) => void; interpolateOne: (x: number) => number; protected _clampRatio: (ratio: number) => number; protected _clampPoint: (point: IPoint) => { x: number; y: number; }; } export interface IDisposable { dispose(): void; } export declare class CubicInterpolationSet { a: number[]; b: number[]; c: number[]; d: number[]; constructor(_points: Point[]); at(idx: number): { a: number; b: number; c: number; d: number; }; } export declare class CubicSpline { constructor(_points: IPoint[]); interpolate(x: number): number; }