import { MorphFn } from './morph'; import { Point } from './point'; import { Rect } from './rect'; export declare class Polygon { static toSVGPath(points: Point[]): string; static sum(points: Point[]): Point; static absSum(points: Point[]): Point; static screen(a: Point[], b: Point[]): Point[]; static mag(points: Point[]): number; static rope(points: Point[], coeff?: number): Point[]; static chop(points: Point[], min?: number, max?: number): Point[]; static morph(morphFn: MorphFn, from: Point[], to: Point[], t: number): Point[]; static resample(points: Point[], index: number, t: number): Point; static fit(points: Point[], length: number): Point[]; static resampleSpline(points: Point[], index: number, t: number): Point; static resampleCubic(points: Point[], index: number, t: number): Point; static boundingRect(points: Point[]): Rect; static sat(p1: Polygon, p2: Polygon): Point | null; points: Point[]; constructor(polygon: Polygon); constructor(points: Point[]); constructor(polygon: Polygon | Point[]); get length(): number; get forEach(): (callbackfn: (value: Point, index: number, array: Point[]) => void, thisArg?: any) => void; get slice(): (start?: number | undefined, end?: number | undefined) => Point[]; toSVGPath(): string; screen(this: Polygon, other: Polygon): Polygon; screen(this: Polygon, other: Point[]): Polygon; mag(this: Polygon): number; absSum(this: Polygon): number; translateSelf(this: Polygon, other: Polygon): Polygon; translateSelf(this: Polygon, other: Point[]): Polygon; chop(this: Polygon, min: number, max: number): Polygon; chopSelf(this: Polygon, min: number, max: number): Polygon; fit(this: Polygon, length: number): Polygon; fitSelf(this: Polygon, length: number): Polygon; rope(this: Polygon, coeff: number): Polygon; ropeSelf(this: Polygon, coeff: number): Polygon; boundingRect(this: Polygon): Rect; }