import { Geom_Surface, BitbybitOcctModule, TopoDS_Compound, TopoDS_Edge, TopoDS_Shape, TopoDS_Wire } from "../../../bitbybit-dev-occt/bitbybit-dev-occt";
import * as Inputs from "../../api/inputs";
import { Base } from "../../api/inputs";
import { ShapesHelperService } from "../../api/shapes-helper.service";
import { OCCReferencedReturns } from "../../occ-referenced-returns";
import { EdgesService } from "./edges.service";
import { ShapeGettersService } from "./shape-getters";
import { EntitiesService } from "./entities.service";
import { GeomService } from "./geom.service";
import { TransformsService } from "./transforms.service";
import { ConverterService } from "./converter.service";
import { EnumService } from "./enum.service";
import { TextWiresDataDto, ObjectDefinition } from "../../api/models/bucket";
import { OperationsService } from "./operations.service";
import { FilletsService } from "./fillets.service";
import { BaseBitByBit } from "../../base";
import { VectorHelperService } from "../../api/vector-helper.service";
export declare class WiresService {
    private readonly occ;
    private readonly occRefReturns;
    private readonly base;
    private readonly shapesHelperService;
    private readonly shapeGettersService;
    private readonly transformsService;
    private readonly enumService;
    private readonly entitiesService;
    private readonly converterService;
    private readonly geomService;
    private readonly edgesService;
    private readonly vecHelper;
    filletsService: FilletsService;
    operationsService: OperationsService;
    constructor(occ: BitbybitOcctModule, occRefReturns: OCCReferencedReturns, base: BaseBitByBit, shapesHelperService: ShapesHelperService, shapeGettersService: ShapeGettersService, transformsService: TransformsService, enumService: EnumService, entitiesService: EntitiesService, converterService: ConverterService, geomService: GeomService, edgesService: EdgesService, vecHelper: VectorHelperService, filletsService: FilletsService, operationsService: OperationsService);
    getWireLength(inputs: Inputs.OCCT.ShapeDto<TopoDS_Wire>): number;
    getWiresLengths(inputs: Inputs.OCCT.ShapesDto<TopoDS_Wire>): number[];
    createRectangleWire(inputs: Inputs.OCCT.RectangleDto): TopoDS_Wire;
    createSquareWire(inputs: Inputs.OCCT.SquareDto): TopoDS_Wire;
    reversedWire(inputs: Inputs.OCCT.ShapeDto<TopoDS_Wire>): TopoDS_Wire;
    reversedWireFromReversedEdges(inputs: Inputs.OCCT.ShapeDto<TopoDS_Wire>): TopoDS_Wire;
    createChristmasTreeWire(inputs: Inputs.OCCT.ChristmasTreeDto): TopoDS_Shape;
    createStarWire(inputs: Inputs.OCCT.StarDto): TopoDS_Shape;
    createParallelogramWire(inputs: Inputs.OCCT.ParallelogramDto): TopoDS_Shape;
    createHeartWire(inputs: Inputs.OCCT.Heart2DDto): TopoDS_Shape;
    createNGonWire(inputs: Inputs.OCCT.NGonWireDto): TopoDS_Shape;
    createLPolygonWire(inputs: Inputs.OCCT.LPolygonDto): TopoDS_Shape;
    createIBeamProfileWire(inputs: Inputs.OCCT.IBeamProfileDto): TopoDS_Shape;
    createHBeamProfileWire(inputs: Inputs.OCCT.HBeamProfileDto): TopoDS_Shape;
    createTBeamProfileWire(inputs: Inputs.OCCT.TBeamProfileDto): TopoDS_Shape;
    createUBeamProfileWire(inputs: Inputs.OCCT.UBeamProfileDto): TopoDS_Shape;
    createPolygonWire(inputs: Inputs.OCCT.PolygonDto): TopoDS_Wire;
    createPolylineWire(inputs: Inputs.OCCT.PolylineDto): TopoDS_Wire;
    createLineWire(inputs: Inputs.OCCT.LineDto): TopoDS_Wire;
    createLineWireWithExtensions(inputs: Inputs.OCCT.LineWithExtensionsDto): TopoDS_Wire;
    private makeWireBetweenTwoPoints;
    divideWireByParamsToPoints(inputs: Inputs.OCCT.DivideDto<TopoDS_Wire>): Inputs.Base.Point3[];
    divideWireByEqualDistanceToPoints(inputs: Inputs.OCCT.DivideDto<TopoDS_Wire>): Base.Point3[];
    pointOnWireAtParam(inputs: Inputs.OCCT.DataOnGeometryAtParamDto<TopoDS_Wire>): Base.Point3;
    tangentOnWireAtParam(inputs: Inputs.OCCT.DataOnGeometryAtParamDto<TopoDS_Wire>): Base.Point3;
    pointOnWireAtLength(inputs: Inputs.OCCT.DataOnGeometryAtLengthDto<TopoDS_Wire>): Base.Point3;
    pointsOnWireAtLengths(inputs: Inputs.OCCT.DataOnGeometryAtLengthsDto<TopoDS_Wire>): Base.Point3[];
    pointsOnWireAtEqualLength(inputs: Inputs.OCCT.PointsOnWireAtEqualLengthDto<TopoDS_Wire>): Base.Point3[];
    pointsOnWireAtPatternOfLengths(inputs: Inputs.OCCT.PointsOnWireAtPatternOfLengthsDto<TopoDS_Wire>): Base.Point3[];
    tangentOnWireAtLength(inputs: Inputs.OCCT.DataOnGeometryAtLengthDto<TopoDS_Wire>): Base.Point3;
    interpolatePoints(inputs: Inputs.OCCT.InterpolationDto): TopoDS_Wire;
    /**
     * Interpolate points with symmetric periodic (closed) curve
     * Uses chord-based tangent constraints to ensure the curve is symmetrical
     * (e.g., 4 points of a square will produce a perfectly symmetric curve like Rhino)
     * @param inputs Points to interpolate and tolerance
     * @returns Symmetric periodic BSpline wire
     */
    interpolatePointsSymmetric(inputs: Inputs.OCCT.InterpolationDto): TopoDS_Wire;
    isWireClosed(inputs: Inputs.OCCT.ShapeDto<TopoDS_Wire>): boolean;
    splitOnPoints(inputs: Inputs.OCCT.SplitWireOnPointsDto<TopoDS_Wire>): TopoDS_Wire[];
    createLines(inputs: Inputs.OCCT.LinesDto): TopoDS_Wire[] | TopoDS_Compound;
    createWireFromTwoCirclesTan(inputs: Inputs.OCCT.WireFromTwoCirclesTanDto<TopoDS_Wire>): TopoDS_Wire;
    createZigZagBetweenTwoWires(inputs: Inputs.OCCT.ZigZagBetweenTwoWiresDto<TopoDS_Wire>): TopoDS_Wire;
    getWireCenterOfMass(inputs: Inputs.OCCT.ShapeDto<TopoDS_Wire>): Base.Point3;
    hexagonsInGrid(inputs: Inputs.OCCT.HexagonsInGridDto): TopoDS_Wire[];
    createWireFromEdge(inputs: Inputs.OCCT.ShapeDto<TopoDS_Edge>): TopoDS_Wire;
    createBSpline(inputs: Inputs.OCCT.BSplineDto): TopoDS_Wire;
    createBezier(inputs: Inputs.OCCT.BezierDto): TopoDS_Wire;
    createBezierWeights(inputs: Inputs.OCCT.BezierWeightsDto): TopoDS_Wire;
    addEdgesAndWiresToWire(inputs: Inputs.OCCT.ShapeShapesDto<TopoDS_Wire, TopoDS_Wire | TopoDS_Edge>): TopoDS_Wire;
    startPointOnWire(inputs: Inputs.OCCT.ShapeDto<TopoDS_Wire>): Base.Point3;
    midPointOnWire(inputs: Inputs.OCCT.ShapeDto<TopoDS_Wire>): Base.Point3;
    endPointOnWire(inputs: Inputs.OCCT.ShapeDto<TopoDS_Wire>): Base.Point3;
    textWires(inputs: Inputs.OCCT.TextWiresDto): TopoDS_Wire[];
    textWiresWithData(inputs: Inputs.OCCT.TextWiresDto): ObjectDefinition<TextWiresDataDto<string>, TopoDS_Shape>;
    placeWire(wire: TopoDS_Wire, surface: Geom_Surface): TopoDS_Wire;
    wiresToPoints(inputs: Inputs.OCCT.WiresToPointsDto<TopoDS_Shape>): Inputs.Base.Point3[][];
    createHelixWire(inputs: Inputs.OCCT.HelixWireDto): TopoDS_Wire;
    createHelixWireByTurns(inputs: Inputs.OCCT.HelixWireByTurnsDto): TopoDS_Wire;
    createTaperedHelixWire(inputs: Inputs.OCCT.TaperedHelixWireDto): TopoDS_Wire;
    createFlatSpiralWire(inputs: Inputs.OCCT.FlatSpiralWireDto): TopoDS_Wire;
}
