/** @packageDocumentation
 * @module Curve
 */
import { BSplineCurve3d } from "../bspline/BSplineCurve";
import { BSplineCurve3dH } from "../bspline/BSplineCurve3dH";
import { NullGeometryHandler } from "../geometry3d/GeometryHandler";
import { MomentData } from "../geometry4d/MomentData";
import { Arc3d } from "./Arc3d";
import { CurvePrimitive } from "./CurvePrimitive";
import { LineSegment3d } from "./LineSegment3d";
import { LineString3d } from "./LineString3d";
import { Loop } from "./Loop";
import { ParityRegion } from "./ParityRegion";
import { TransitionSpiral3d } from "./spiral/TransitionSpiral3d";
import { UnionRegion } from "./UnionRegion";
/**
 * Implementation class for computing XY area moments.
 * @internal
 */
export declare class RegionMomentsXY extends NullGeometryHandler {
    private _activeMomentData?;
    private _point0;
    private _point1;
    /**
     * Accumulate (independent) integrations over:
     * * The area between the arc and the chord connecting its endpoints.
     * * The triangle with vertices: origin, arc start, arc end.
     */
    handleArc3d(arc: Arc3d): void;
    /** Accumulate integrals over the (triangular) areas from the origin to each line segment. */
    handleLineString3d(ls: LineString3d): void;
    /** Accumulate integrals over the (triangular) area from the origin to this line segment. */
    handleLineSegment3d(segment: LineSegment3d): void;
    /** Accumulate integrals from origin to all primitives in the loop. */
    handleLoop(loop: Loop): MomentData | undefined;
    private handleAnyRegion;
    /** Accumulate integrals from origin to the components of the parity region. */
    handleParityRegion(region: ParityRegion): MomentData | undefined;
    /** Accumulate integrals from origin to the components of the union region. */
    handleUnionRegion(region: UnionRegion): MomentData | undefined;
    private _strokeOptions?;
    private getStrokeOptions;
    /**
     * Handle a single curve primitive (not loop).
     * * Stroke the curve and accumulate stroke array.
     */
    handleCurvePrimitive(cp: CurvePrimitive): void;
    /** Handle strongly typed  BSplineCurve3d  as generic curve primitive. */
    handleBSplineCurve3d(g: BSplineCurve3d): void;
    /** Handle strongly typed  BSplineCurve3dH  as generic curve primitive. */
    handleBSplineCurve3dH(g: BSplineCurve3dH): void;
    /** Handle strongly typed  TransitionSpiral as generic curve primitive. */
    handleTransitionSpiral(g: TransitionSpiral3d): void;
}
//# sourceMappingURL=RegionMomentsXY.d.ts.map