import { Point } from './point'; /** * Represents a circular arc defined by either: * 1. Start point, end point, and bulge factor * 2. Center point, radius, start octant, and number of octants to span * * For bulge arcs: * - bulge = (2 * H / D) where H is height from midpoint and D is chord length * - bulge = 1 represents a semicircle (180 degrees) * - bulge = 0 represents a straight line * - |bulge| should not exceed 1 */ export declare class Arc { readonly start: Point; readonly end: Point; private readonly bulge; readonly center: Point; readonly radius: number; readonly startAngle: number; readonly endAngle: number; readonly isClockwise: boolean; /** * Creates a bulge-defined arc * @param start Start point * @param end End point * @param bulge Bulge factor (-1 to 1, where 1 is a semicircle) */ static fromBulge(start: Point, end: Point, bulge: number): Arc; /** * Creates an octant-defined arc * @param center Center point of the arc * @param radius Radius of the arc * @param startOctant Starting octant (0-7) * @param octantCount Number of octants to span (0-8, where 0 means 8 octants) * @param isClockwise Whether the arc goes clockwise */ static fromOctant(center: Point, radius: number, startOctant: number, octantCount: number, isClockwise: boolean): Arc; private constructor(); /** * Tessellates the arc into a series of points that approximate the arc. * @param circleSpan The angle span between tessellated points (default Math.PI / 18) * @returns Array of points representing the tessellated arc */ tessellate(circleSpan?: number): Point[]; }