import type { GcsSystem, IntVector, DoubleVector, Point, Curve, Line, Circle, Ellipse, Hyperbola, Parabola, Arc, ArcOfHyperbola, ArcOfEllipse, ArcOfParabola, BSpline } from "./gcs_system"; import { InternalAlignmentType, Constraint_Alignment } from "./enums"; export declare class GcsSystemMock implements GcsSystem { params_size(): number; get_p_param(i: number): number; set_p_param(i: number, value: number, fixed: boolean): void; push_p_param(value: number, fixed: boolean): number; get_is_fixed(i: number): boolean; set_max_iterations(n: number): void; get_max_iterations(): number; set_covergence_threshold(threshold: number): void; get_convergence_threshold(): number; solve_system(algorithm: number): number; get_p_params(): DoubleVector; clear_data(): void; apply_solution(): void; dof(): number; has_conflicting(): boolean; has_redundant(): boolean; has_partially_redundant(): boolean; get_conflicting(): IntVector; get_redundant(): IntVector; get_partially_redundant(): IntVector; clear_by_id(id: number): void; set_debug_mode(debug_mode: number): void; get_debug_mode(): number; make_point(px_i: number, py_i: number): Point; make_line(p1x_i: number, p1y_i: number, p2x_i: number, p2y_i: number): Line; make_circle(cx_i: number, cy_i: number, rad_i: number): Circle; make_ellipse(cx_i: number, cy_i: number, focus1x_i: number, focus1y_i: number, radmin_i: number): Ellipse; make_hyperbola(cx_i: number, cy_i: number, focus1x_i: number, focus1y_i: number, radmin_i: number): Hyperbola; make_parabola(vertexx_i: number, vertexy_i: number, focus1x_i: number, focus1y_i: number): Parabola; make_arc(cx_i: number, cy_i: number, startx_i: number, starty_i: number, endx_i: number, endy_i: number, startangle_i: number, endangle_i: number, rad_i: number): Arc; make_arc_of_ellipse(cx_i: number, cy_i: number, focus1x_i: number, focus1y_i: number, startx_i: number, starty_i: number, endx_i: number, endy_i: number, startangle_i: number, endangle_i: number, radmin_i: number): ArcOfEllipse; make_arc_of_parabola(vertexx_i: number, vertexy_i: number, focusx_i: number, focusy_i: number, startx_i: number, starty_i: number, endx_i: number, endy_i: number, startangle_i: number, endangle_i: number): ArcOfParabola; make_arc_of_hyperbola(cx_i: number, cy_i: number, focus1x_i: number, focus1y_i: number, startx_i: number, starty_i: number, endx_i: number, endy_i: number, startangle_i: number, endangle_i: number, radmin_i: number): ArcOfHyperbola; make_bspline(startx_i: number, starty_i: number, endx_i: number, endy_i: number, poles_xy_i: IntVector, weights_i: IntVector, knots_i: IntVector, mult: IntVector, degree: number, periodic: boolean): BSpline; add_constraint_equal(param1_param_i: number, param2_param_i: number, tagId: number, driving: boolean, internalalignment: Constraint_Alignment, scale: number): void; add_constraint_proportional(param1_param_i: number, param2_param_i: number, ratio: number, tagId: number, driving: boolean, scale: number): void; add_constraint_difference(param1_param_i: number, param2_param_i: number, difference_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_p2p_distance(p1: Point, p2: Point, distance_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_p2p_angle_incr_angle(p1: Point, p2: Point, angle_param_i: number, incrAngle: number, tagId: number, driving: boolean, scale: number): void; add_constraint_p2p_angle(p1: Point, p2: Point, angle_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_p2l_distance(p: Point, l: Line, distance_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_point_on_line_pl(p: Point, l: Line, tagId: number, driving: boolean, scale: number): void; add_constraint_point_on_line_ppp(p: Point, lp1: Point, lp2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_point_on_perp_bisector_pl(p: Point, l: Line, tagId: number, driving: boolean, scale: number): void; add_constraint_point_on_perp_bisector_ppp(p: Point, lp1: Point, lp2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_parallel(l1: Line, l2: Line, tagId: number, driving: boolean, scale: number): void; add_constraint_perpendicular_ll(l1: Line, l2: Line, tagId: number, driving: boolean, scale: number): void; add_constraint_perpendicular_pppp(l1p1: Point, l1p2: Point, l2p1: Point, l2p2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_l2l_angle_ll(l1: Line, l2: Line, angle_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_l2l_angle_pppp(l1p1: Point, l1p2: Point, l2p1: Point, l2p2: Point, angle_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_angle_via_point(crv1: Curve, crv2: Curve, p: Point, angle_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_angle_via_two_points(crv1: Curve, crv2: Curve, p1: Point, p2: Point, angle_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_angle_via_point_and_param(crv1: Curve, crv2: Curve, p: Point, cparam_param_i: number, angle_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_angle_via_point_and_two_params(crv1: Curve, crv2: Curve, p: Point, cparam1_param_i: number, cparam2_param_i: number, angle_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_midpoint_on_line_ll(l1: Line, l2: Line, tagId: number, driving: boolean, scale: number): void; add_constraint_midpoint_on_line_pppp(l1p1: Point, l1p2: Point, l2p1: Point, l2p2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_tangent_circumf(p1: Point, p2: Point, rd1_param_i: number, rd2_param_i: number, internal: boolean, tagId: number, driving: boolean, scale: number): void; add_constraint_tangent_at_bspline_knot(b: BSpline, l: Line, knotindex: number, tagId: number, driving: boolean, scale: number): void; add_constraint_p2p_coincident(p1: Point, p2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_horizontal_l(l: Line, tagId: number, driving: boolean, scale: number): void; add_constraint_horizontal_pp(p1: Point, p2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_vertical_l(l: Line, tagId: number, driving: boolean, scale: number): void; add_constraint_vertical_pp(p1: Point, p2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_coordinate_x(p: Point, x_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_coordinate_y(p: Point, y_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_arc_rules(a: Arc, tagId: number, driving: boolean, scale: number): void; add_constraint_point_on_circle(p: Point, c: Circle, tagId: number, driving: boolean, scale: number): void; add_constraint_point_on_ellipse(p: Point, e: Ellipse, tagId: number, driving: boolean, scale: number): void; add_constraint_point_on_hyperbolic_arc(p: Point, e: ArcOfHyperbola, tagId: number, driving: boolean, scale: number): void; add_constraint_point_on_parabolic_arc(p: Point, e: ArcOfParabola, tagId: number, driving: boolean, scale: number): void; add_constraint_point_on_bspline(p: Point, b: BSpline, pointparam_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_arc_of_ellipse_rules(a: ArcOfEllipse, tagId: number, driving: boolean, scale: number): void; add_constraint_curve_value(p: Point, a: Curve, u_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_arc_of_hyperbola_rules(a: ArcOfHyperbola, tagId: number, driving: boolean, scale: number): void; add_constraint_arc_of_parabola_rules(a: ArcOfParabola, tagId: number, driving: boolean, scale: number): void; add_constraint_point_on_arc(p: Point, a: Arc, tagId: number, driving: boolean, scale: number): void; add_constraint_perpendicular_line2arc(p1: Point, p2: Point, a: Arc, tagId: number, driving: boolean, scale: number): void; add_constraint_perpendicular_arc2line(a: Arc, p1: Point, p2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_perpendicular_circle2arc(center: Point, radius_param_i: number, a: Arc, tagId: number, driving: boolean, scale: number): void; add_constraint_perpendicular_arc2circle(a: Arc, center: Point, radius_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_perpendicular_arc2arc(a1: Arc, reverse1: boolean, a2: Arc, reverse2: boolean, tagId: number, driving: boolean, scale: number): void; add_constraint_tangent_lc(l: Line, c: Circle, tagId: number, driving: boolean, scale: number): void; add_constraint_tangent_le(l: Line, e: Ellipse, tagId: number, driving: boolean, scale: number): void; add_constraint_tangent_la(l: Line, a: Arc, tagId: number, driving: boolean, scale: number): void; add_constraint_tangent_cc(c1: Circle, c2: Circle, tagId: number, driving: boolean, scale: number): void; add_constraint_tangent_aa(a1: Arc, a2: Arc, tagId: number, driving: boolean, scale: number): void; add_constraint_tangent_ca(c: Circle, a: Arc, tagId: number, driving: boolean, scale: number): void; add_constraint_circle_radius(c: Circle, radius_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_arc_radius(a: Arc, radius_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_circle_diameter(c: Circle, diameter_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_arc_diameter(a: Arc, diameter_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_equal_length(l1: Line, l2: Line, tagId: number, driving: boolean, scale: number): void; add_constraint_equal_radius_cc(c1: Circle, c2: Circle, tagId: number, driving: boolean, scale: number): void; add_constraint_equal_radii_ee(e1: Ellipse, e2: Ellipse, tagId: number, driving: boolean, scale: number): void; add_constraint_equal_radii_ahah(a1: ArcOfHyperbola, a2: ArcOfHyperbola, tagId: number, driving: boolean, scale: number): void; add_constraint_equal_radius_ca(c1: Circle, a2: Arc, tagId: number, driving: boolean, scale: number): void; add_constraint_equal_radius_aa(a1: Arc, a2: Arc, tagId: number, driving: boolean, scale: number): void; add_constraint_equal_focus(a1: ArcOfParabola, a2: ArcOfParabola, tagId: number, driving: boolean, scale: number): void; add_constraint_p2p_symmetric_ppl(p1: Point, p2: Point, l: Line, tagId: number, driving: boolean, scale: number): void; add_constraint_p2p_symmetric_ppp(p1: Point, p2: Point, p: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_snells_law(ray1: Curve, ray2: Curve, boundary: Curve, p: Point, n1_param_i: number, n2_param_i: number, flipn1: boolean, flipn2: boolean, tagId: number, driving: boolean, scale: number): void; add_constraint_c2cdistance(c1: Circle, c2: Circle, dist_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_c2ldistance(c: Circle, l: Line, dist_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_p2cdistance(p: Point, c: Circle, distance_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_arc_length(a: Arc, dist_param_i: number, tagId: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_point2ellipse(e: Ellipse, p1: Point, alignmentType: InternalAlignmentType, tagId: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_ellipse_major_diameter(e: Ellipse, p1: Point, p2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_ellipse_minor_diameter(e: Ellipse, p1: Point, p2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_ellipse_focus1(e: Ellipse, p1: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_ellipse_focus2(e: Ellipse, p1: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_point2hyperbola(e: Hyperbola, p1: Point, alignmentType: InternalAlignmentType, tagId: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_hyperbola_major_diameter(e: Hyperbola, p1: Point, p2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_hyperbola_minor_diameter(e: Hyperbola, p1: Point, p2: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_hyperbola_focus(e: Hyperbola, p1: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_parabola_focus(e: Parabola, p1: Point, tagId: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_bspline_control_point(b: BSpline, c: Circle, poleindex: number, tag: number, driving: boolean, scale: number): void; add_constraint_internal_alignment_knot_point(b: BSpline, p: Point, knotindex: number, tagId: number, driving: boolean, scale: number): void; delete(): void; }