import type { Attribs } from "./api.js";
import type { ReadonlyVec, Vec } from "@thi.ng/vectors";
import { Arc } from "./api/arc.js";
/**
 * Creates a new elliptic {@link Arc} from given `center`, `radii`, `axis`
 * rotation, `start` and `end` angles (in radians).
 *
 * @remarks
 * The `xl` (large arc) and `clockwise` params are defaulting to:
 *
 * - xl = true if |start-end| > PI
 * - clockwise = true if end > start
 *
 * References:
 *
 * - https://svgwg.org/svg2-draft/paths.html#PathDataEllipticalArcCommands
 * - https://svgwg.org/svg2-draft/images/paths/arcs02.svg
 *
 * Also see {@link arcFrom2Points}, {@link pathFromSvg} for an alternative
 * construction.
 *
 * @param center
 * @param radii
 * @param axis
 * @param start
 * @param end
 * @param xl
 * @param clockwise
 * @param attribs
 */
export declare const arc: (center: Vec, radii: number | Vec, axis: number, start: number, end: number, xl?: boolean, clockwise?: boolean, attribs?: Attribs) => Arc;
/**
 * Constructs a new {@link Arc} between the two given points `a` and `b` using
 * `radii`, `axis` rotation (in radians) and `xl`, `clockwise` params to
 * configure which of 4 possible arcs will be chosen.
 *
 * @remarks
 * This function returns `undefined` if it's mathematically impossible to create
 * an arc with the given parameters.
 *
 * References:
 *
 * - https://svgwg.org/svg2-draft/paths.html#PathDataEllipticalArcCommands
 * - https://svgwg.org/svg2-draft/images/paths/arcs02.svg
 * - https://svgwg.org/svg2-draft/implnote.html#ArcConversionEndpointToCenter
 * - https://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes
 *
 * Also see {@link arc}, {@link pathFromSvg} for an alternative construction.
 *
 * @param a
 * @param b
 * @param radii
 * @param axis
 * @param xl
 * @param cw
 * @param attribs
 */
export declare const arcFrom2Points: (a: ReadonlyVec, b: ReadonlyVec, radii: ReadonlyVec, axis?: number, xl?: boolean, cw?: boolean, attribs?: Attribs) => Arc | undefined;
//# sourceMappingURL=arc.d.ts.map