import { vec2 } from 'gl-matrix'; export declare function computeMiter(lineTangent: vec2, miter: vec2, start: vec2, end: vec2, halfThick: number): [number, vec2]; export declare function computeNormal(out: vec2, dir: vec2): vec2; export declare function direction(out: vec2, a: vec2, b: vec2): vec2; export declare function getArrayUnique(matrix: number[][]): number[][]; export interface IExtrudeLineOption { join: string; cap: string; dash: boolean; closed: boolean; indexOffset: number; miterLimit: number; thickness: number; } export default class ExtrudePolyline { complex: { positions: number[]; indices: number[]; normals: number[]; startIndex: number; indexes: number[]; }; private join; private cap; private miterLimit; private thickness; private normal; private lastFlip; private miter; private started; private dash; private totalDistance; private currentIndex; constructor(opts?: Partial); simpleExtrude(points: number[][]): { positions: number[]; indices: number[]; normals: number[]; startIndex: number; indexes: number[]; }; extrude(points: number[][]): { positions: number[]; indices: number[]; normals: number[]; startIndex: number; indexes: number[]; }; private simpleSegment; private segment; private extrusions; private lineSegmentDistance; }