import { Inputs } from "@bitbybit-dev/occt";
import { OCCTWorkerManager } from "../../../occ-worker/occ-worker-manager";
export declare class OCCTEdge {
    private readonly occWorkerManager;
    constructor(occWorkerManager: OCCTWorkerManager);
    /**
      * Creates linear edge from base line format {start: Point3, end: Point3}
      * @param inputs base line
      * @returns OpenCascade edge
      * @group from base
      * @shortname edge from base line
      * @drawable true
      */
    fromBaseLine(inputs: Inputs.OCCT.LineBaseDto): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Creates linear edges from base lines format {start: Point3, end: Point3}[]
     * @param inputs base lines
     * @returns OpenCascade edges
     * @group from base
     * @shortname edges from base lines
     * @drawable true
     */
    fromBaseLines(inputs: Inputs.OCCT.LineBaseDto): Promise<Inputs.OCCT.TopoDSEdgePointer[]>;
    /**
     * Creates linear edge from base segment format [Point3, Point3]
     * @param inputs base segment
     * @returns OpenCascade edge
     * @group from base
     * @shortname edge from base segment
     * @drawable true
     */
    fromBaseSegment(inputs: Inputs.OCCT.SegmentBaseDto): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Creates linear edge from base segments format [Point3, Point3][]
     * @param inputs base segments
     * @returns OpenCascade edges
     * @group from base
     * @shortname edges from base segments
     * @drawable true
     */
    fromBaseSegments(inputs: Inputs.OCCT.SegmentsBaseDto): Promise<Inputs.OCCT.TopoDSEdgePointer[]>;
    /**
     * Creates linear edges from collection of points
     * @param inputs Points
     * @returns OpenCascade edges
     * @group from base
     * @shortname edges from points
     * @drawable true
     */
    fromPoints(inputs: Inputs.OCCT.PointsDto): Promise<Inputs.OCCT.TopoDSEdgePointer[]>;
    /**
     * Creates linear edges from polyline definition
     * @param inputs Polyline
     * @returns OpenCascade edges
     * @group from base
     * @shortname edges from polyline
     * @drawable true
     */
    fromBasePolyline(inputs: Inputs.OCCT.PolylineBaseDto): Promise<Inputs.OCCT.TopoDSEdgePointer[]>;
    /**
     * Creates linear edges from triangle definition
     * @param inputs Triangle
     * @returns OpenCascade edges
     * @group from base
     * @shortname edges from triangle
     * @drawable true
     */
    fromBaseTriangle(inputs: Inputs.OCCT.TriangleBaseDto): Promise<Inputs.OCCT.TopoDSEdgePointer[]>;
    /**
     * Creates linear edges from mesh definition
     * @param inputs Mesh
     * @returns OpenCascade edges
     * @group from base
     * @shortname edges from mesh
     * @drawable true
     */
    fromBaseMesh(inputs: Inputs.OCCT.MeshBaseDto): Promise<Inputs.OCCT.TopoDSEdgePointer[]>;
    /**
     * Creates linear edge between two points
     * @param inputs Two points between which edge should be created
     * @returns OpenCascade edge
     * @group primitives
     * @shortname line
     * @drawable true
     */
    line(inputs: Inputs.OCCT.LineDto): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Creates arc edge between three points
     * @param inputs three points
     * @returns OpenCascade edge
     * @group primitives
     * @shortname arc 3 points
     * @drawable true
     */
    arcThroughThreePoints(inputs: Inputs.OCCT.ArcEdgeThreePointsDto): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Creates arc edge between two points given the tangent direction vector on first point.
     * @param inputs two points and tangent vector
     * @returns OpenCascade edge
     * @group primitives
     * @shortname arc 2 points tangent
     * @drawable true
     */
    arcThroughTwoPointsAndTangent(inputs: Inputs.OCCT.ArcEdgeTwoPointsTangentDto): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Creates an arc edge between two points on a circle
     * @param inputs two points and circle edge
     * @returns OpenCascade edge
     * @group primitives
     * @shortname arc from circle and points
     * @drawable true
     */
    arcFromCircleAndTwoPoints(inputs: Inputs.OCCT.ArcEdgeCircleTwoPointsDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Creates an arc edge between two alpha angles on a circle
     * @param inputs two angles and circle edge
     * @returns OpenCascade edge
     * @group primitives
     * @shortname arc from circle and angles
     * @drawable true
     */
    arcFromCircleAndTwoAngles(inputs: Inputs.OCCT.ArcEdgeCircleTwoAnglesDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Creates an arc edge between the point on a circle and a given alpha angle
     * @param inputs point, circle edge and alpha angle
     * @returns OpenCascade edge
     * @group primitives
     * @shortname arc from circle point and angle
     * @drawable true
     */
    arcFromCirclePointAndAngle(inputs: Inputs.OCCT.ArcEdgeCirclePointAngleDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Creates OpenCascade circle edge
     * @param inputs Circle parameters
     * @returns OpenCascade circle edge
     * @group primitives
     * @shortname circle
     * @drawable true
     */
    createCircleEdge(inputs: Inputs.OCCT.CircleDto): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Creates OpenCascade ellipse edge
     * @param inputs Ellipse parameters
     * @returns OpenCascade ellipse edge
     * @group primitives
     * @shortname ellipse
     * @drawable true
     */
    createEllipseEdge(inputs: Inputs.OCCT.EllipseDto): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Removes internal faces for the shape
     * @param inputs Shape
     * @returns OpenCascade shape with no internal edges
     * @group shapes
     * @shortname remove internal
     * @drawable true
     */
    removeInternalEdges(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSShapePointer>): Promise<Inputs.OCCT.TopoDSShapePointer>;
    /**
     * Creates an edge from geom curve and geom surface
     * @param inputs shapes are expected to contain 2 array elements - first is geom curve, second geom surface
     * @returns OpenCascade TopoDS_Edge
     * @group from
     * @shortname 2d curve and surface
     * @drawable true
     */
    makeEdgeFromGeom2dCurveAndSurface(inputs: Inputs.OCCT.CurveAndSurfaceDto<Inputs.OCCT.Geom2dCurvePointer, Inputs.OCCT.GeomSurfacePointer>): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Gets the edge by providing an index from the shape
     * @param inputs Shape
     * @returns OpenCascade edge
     * @group get
     * @shortname get edge
     * @drawable true
     */
    getEdge(inputs: Inputs.OCCT.EdgeIndexDto<Inputs.OCCT.TopoDSShapePointer>): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Gets the edges of a shape in a list
     * @param inputs Shape
     * @returns OpenCascade edge list
     * @group get
     * @shortname get edges
     * @drawable true
     */
    getEdges(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSShapePointer>): Promise<Inputs.OCCT.TopoDSEdgePointer[]>;
    /**
     * Gets the edges of a wire ordered along the direction of the wire
     * @param inputs wire shape
     * @returns OpenCascade edge list
     * @group get
     * @shortname get edges along wire
     * @drawable true
     */
    getEdgesAlongWire(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSWirePointer>): Promise<Inputs.OCCT.TopoDSEdgePointer[]>;
    /**
     * Gets circular edges of a wire ordered along the direction of the wire
     * @param inputs wire shape
     * @returns OpenCascade edge list
     * @group get
     * @shortname get circular edges along wire
     * @drawable true
     */
    getCircularEdgesAlongWire(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSWirePointer>): Promise<Inputs.OCCT.TopoDSEdgePointer[]>;
    /**
     * Gets linear edges of a wire ordered along the direction of the wire
     * @param inputs wire shape
     * @returns OpenCascade edge list
     * @group get
     * @shortname get linear edges along wire
     * @drawable true
     */
    getLinearEdgesAlongWire(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSWirePointer>): Promise<Inputs.OCCT.TopoDSEdgePointer[]>;
    /**
     * Gets corner points of edges for a shape. There's no order guarantee here. All duplicates are removed, so when three edges form one corner, that will be represented by a single point in the list.
     * @param inputs Shape that contains edges - wire, face, shell, solid
     * @returns List of points
     * @group get
     * @shortname corners
     * @drawable true
     */
    getCornerPointsOfEdgesForShape(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSShapePointer>): Promise<Inputs.Base.Point3[]>;
    /**
     * Gets the edge length
     * @param inputs edge
     * @returns Length
     * @group get
     * @shortname edge length
     * @drawable false
     */
    getEdgeLength(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<number>;
    /**
     * Gets the edge lengths of the shape
     * @param inputs shape
     * @returns Lengths
     * @group get
     * @shortname edge lengths of shape
     * @drawable false
     */
    getEdgeLengthsOfShape(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSShapePointer>): Promise<number[]>;
    /**
     * Gets the lengths of the edges
     * @param inputs edges
     * @returns Lengths
     * @group get
     * @shortname lengths
     * @drawable false
     */
    getEdgesLengths(inputs: Inputs.OCCT.ShapesDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<number[]>;
    /**
     * Gets the center of mass for the edge
     * @param inputs edge
     * @returns Point representing center of mass
     * @group get
     * @shortname center of mass
     * @drawable true
     */
    getEdgeCenterOfMass(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3>;
    /**
     * Gets the centers of mass for the edges
     * @param inputs edges
     * @returns Points representing centers of mass
     * @group get
     * @shortname centers of mass
     * @drawable true
     */
    getEdgesCentersOfMass(inputs: Inputs.OCCT.ShapesDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[]>;
    /**
     * Gets the center point of the circular edge. If edge is not circular, point will not be returned.
     * @param inputs edge
     * @returns Point representing center of the circular edge
     * @group get circular edge
     * @shortname get center of circular edge
     * @drawable true
     */
    getCircularEdgeCenterPoint(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3>;
    /**
     * Gets the radius of the circular edge. If edge is not circular, radius will not be returned.
     * @param inputs edge
     * @returns Radius of the circular edge
     * @group get circular edge
     * @shortname get radius of circular edge
     * @drawable false
     */
    getCircularEdgeRadius(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<number>;
    /**
     * Gets the direction vector of the plane of the circular edge. If edge is not circular, direction vector will not be returned.
     * @param inputs edge
     * @returns Direction vector of the circular edge
     * @group get circular edge
     * @shortname get plane direction of circular edge
     * @drawable true
     */
    getCircularEdgePlaneDirection(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Vector3>;
    /**
     * Gets the point on edge at param
     * @param input edge
     * @returns Point on param
     * @group extract
     * @shortname point at param
     * @drawable true
     */
    pointOnEdgeAtParam(inputs: Inputs.OCCT.DataOnGeometryAtParamDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3>;
    /**
     * Gets the points on edges at param
     * @param input edges
     * @returns Points on param
     * @group extract
     * @shortname points on edges at param
     * @drawable true
     */
    pointsOnEdgesAtParam(inputs: Inputs.OCCT.DataOnGeometryesAtParamDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[]>;
    /**
     * Gets the points of all edges from a shape in separate lists for each edge
     * @param inputs Shape
     * @returns OpenCascade points lists
     * @group extract
     * @shortname edges to points
     * @drawable false
     */
    edgesToPoints(inputs: Inputs.OCCT.EdgesToPointsDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[][]>;
    /**
     * Computes reversed edge from input edge
     * @param inputs Shape
     * @returns OpenCascade edge
     * @group get
     * @shortname reversed edge
     * @drawable true
     */
    reversedEdge(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.OCCT.TopoDSEdgePointer>;
    /**
     * Gets the tangent vector on edge at param
     * @param input edge
     * @returns Tangent vector on param
     * @group extract
     * @shortname tangent at param
     * @drawable true
     */
    tangentOnEdgeAtParam(inputs: Inputs.OCCT.DataOnGeometryAtParamDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3>;
    /**
     * Gets the tangent vectors on edges at param
     * @param input edges
     * @returns Tangent vectors on param
     * @group extract
     * @shortname tangents on edges at param
     * @drawable true
     */
    tangentsOnEdgesAtParam(inputs: Inputs.OCCT.DataOnGeometryesAtParamDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[]>;
    /**
     * Gets the point on edge at length
     * @param input edge and length
     * @returns Point on edge
     * @group extract
     * @shortname point at length
     * @drawable true
     */
    pointOnEdgeAtLength(inputs: Inputs.OCCT.DataOnGeometryAtLengthDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3>;
    /**
     * Gets the points on edges at length
     * @param input edges and length
     * @returns Points on edges
     * @group extract
     * @shortname points at length
     * @drawable true
     */
    pointsOnEdgesAtLength(inputs: Inputs.OCCT.DataOnGeometryesAtLengthDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[]>;
    /**
     * Gets the tangent vector on edge at length
     * @param input edge and length
     * @returns Tangent vector on edge
     * @group extract
     * @shortname tangent at length
     * @drawable true
     */
    tangentOnEdgeAtLength(inputs: Inputs.OCCT.DataOnGeometryAtLengthDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3>;
    /**
     * Gets the tangent vectors on edges at length
     * @param input edges and length
     * @returns Tangent vectors on edges
     * @group extract
     * @shortname tangents at length
     * @drawable true
     */
    tangentsOnEdgesAtLength(inputs: Inputs.OCCT.DataOnGeometryesAtLengthDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[]>;
    /**
     * Gets the start point on edge
     * @param input edge
     * @returns Start point
     * @group extract
     * @shortname start point
     * @drawable true
     */
    startPointOnEdge(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3>;
    /**
     * Gets the start points on edges
     * @param input edges
     * @returns Start points
     * @group extract
     * @shortname start points
     * @drawable true
     */
    startPointsOnEdges(inputs: Inputs.OCCT.ShapesDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[]>;
    /**
     * Gets the end point on edge
     * @param input edge
     * @returns End point
     * @group extract
     * @shortname end point
     * @drawable true
     */
    endPointOnEdge(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3>;
    /**
     * Gets the end points on edges
     * @param input edges
     * @returns End points
     * @group extract
     * @shortname end points
     * @drawable true
     */
    endPointsOnEdges(inputs: Inputs.OCCT.ShapesDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[]>;
    /**
     * Divides edge by params to points
     * @param input edge and division params
     * @returns Points
     * @group extract
     * @shortname points by params
     * @drawable true
     */
    divideEdgeByParamsToPoints(inputs: Inputs.OCCT.DivideDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[]>;
    /**
     * Divides edges by params to points
     * @param input edges and division params
     * @returns Points
     * @group extract
     * @shortname points by params on edges
     * @drawable false
     */
    divideEdgesByParamsToPoints(inputs: Inputs.OCCT.DivideShapesDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[][]>;
    /**
     * Divides edge by length to points
     * @param input edge and division params
     * @returns Points
     * @group extract
     * @shortname points by distance
     * @drawable true
     */
    divideEdgeByEqualDistanceToPoints(inputs: Inputs.OCCT.DivideDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[]>;
    /**
     * Divides edges by length to points
     * @param input edges and division params
     * @returns Points
     * @group extract
     * @shortname points by distance on edges
     * @drawable false
     */
    divideEdgesByEqualDistanceToPoints(inputs: Inputs.OCCT.DivideShapesDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.Base.Point3[][]>;
    /**
     * Creates lines from two given points till circle tangent locations
     * @param input resulting lines
     * @returns lines
     * @group constraint
     * @shortname tan lines from 2 pts to circle
     * @drawable true
     */
    constraintTanLinesFromTwoPtsToCircle(inputs: Inputs.OCCT.ConstraintTanLinesFromTwoPtsToCircleDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.OCCT.TopoDSShapePointer[]>;
    /**
     * Creates lines from a given point till circle tangent locations
     * @param input resulting lines
     * @returns lines
     * @group constraint
     * @shortname tan lines from pt to circle
     * @drawable true
     */
    constraintTanLinesFromPtToCircle(inputs: Inputs.OCCT.ConstraintTanLinesFromPtToCircleDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.OCCT.TopoDSShapePointer[]>;
    /**
     * Creates tangent lines between two circles.
     * @param input resulting lines
     * @returns lines
     * @group constraint
     * @shortname tan lines on two circles
     * @drawable true
     */
    constraintTanLinesOnTwoCircles(inputs: Inputs.OCCT.ConstraintTanLinesOnTwoCirclesDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.OCCT.TopoDSShapePointer[]>;
    /**
     * Creates tangent circles between two circles.
     * @param input resulting circles
     * @returns circles
     * @group constraint
     * @shortname tan circles on two circles
     * @drawable true
     */
    constraintTanCirclesOnTwoCircles(inputs: Inputs.OCCT.ConstraintTanCirclesOnTwoCirclesDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.OCCT.TopoDSShapePointer[]>;
    /**
     * Creates tangent circles between a point and a circle.
     * @param input resulting circles
     * @returns circles
     * @group constraint
     * @shortname tan circles on circle and pnt
     * @drawable true
     */
    constraintTanCirclesOnCircleAndPnt(inputs: Inputs.OCCT.ConstraintTanCirclesOnCircleAndPntDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<Inputs.OCCT.TopoDSShapePointer[]>;
    /**
     * Checks whether an edge is linear
     * @param input edge
     * @returns boolean if is linear
     * @group is
     * @shortname is edge linear
     * @drawable false
     */
    isEdgeLinear(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<boolean>;
    /**
     * Checks whether an edge is circular
     * @param input edge
     * @returns boolean if is circular
     * @group is
     * @shortname is edge circular
     * @drawable false
     */
    isEdgeCircular(inputs: Inputs.OCCT.ShapeDto<Inputs.OCCT.TopoDSEdgePointer>): Promise<boolean>;
}
