import { Point } from '../vector';
import SkeletonContext from './SkeletonContext';
import SkeletonNode from './SkeletonNode';
export default class StraightSkeleton {
private offsetDistance;
private distanceSign;
private initialNodes;
private _ctx;
constructor();
getCtx(): SkeletonContext;
/**
* Sets the absolute distance in units by which the edges should be moved.
* Positive: Grow face. Negative: Shrink face.
* Defaults to Float.NEGATIVE_INFINITY.
* @param distance
*/
setDistance(distance: number): void;
/**
* Sets the epsilon value that is used for degeneracy tests. Bigger values may reduce errors due to numerical instability in certain cases.
* Defaults to 0.0001f.
* @param epsilon
*/
setEpsilon(epsilon: number): void;
execute(contour: Point[], holes?: Point[][], debugStep?: boolean): (() => any | null) | undefined;
loop(): void;
loopStep(): () => any | null;
_eachLoop(): boolean;
/**
* Creates MovingNodes for all the vertices.
* Also calculates bounding rectangle.
* @return Diagonal length of bounding rectangle.
*/
private _createNodes;
private _createNode;
initBisectors(): void;
initEvents(): void;
scale(dist: number): void;
private isInvalid;
getStartNodes(): SkeletonNode[];
getEndNodes(): SkeletonNode[];
getNodeLoops(): SkeletonNode[][];
}