import collections.abc
import enum
import nanobind
import pydrake.symbolic
import scipy.sparse
from _typeshed import Incomplete
from pydrake.common.cpp_template import Binding as Binding
from typing import Any, Callable, ClassVar, overload

AddBilinearProductMcCormickEnvelopeSos2: nanobind.nb_func
AddLogarithmicSos1Constraint: nanobind.nb_func
AddLogarithmicSos2Constraint: nanobind.nb_func
AddSos2Constraint: nanobind.nb_func
ChooseBestSolver: nanobind.nb_func
GenerateSDPA: nanobind.nb_func
GetAvailableSolvers: nanobind.nb_func
GetProgramType: nanobind.nb_func
MakeFirstAvailableSolver: nanobind.nb_func
MakeSemidefiniteRelaxation: nanobind.nb_func
MakeSolver: nanobind.nb_func
Solve: nanobind.nb_func
SolveInParallel: nanobind.nb_func

class AugmentedLagrangianNonsmooth:
    def __init__(self, prog: MathematicalProgram, include_x_bounds: bool) -> None: ...
    def Eval(self, *args, **kwargs): ...
    def include_x_bounds(self) -> bool: ...
    def is_equality(self) -> list[bool]: ...
    def lagrangian_size(self) -> int: ...
    def prog(self) -> MathematicalProgram: ...
    def x_lo(self, *args, **kwargs): ...
    def x_up(self, *args, **kwargs): ...

class AugmentedLagrangianSmooth:
    def __init__(self, prog: MathematicalProgram, include_x_bounds: bool) -> None: ...
    def Eval(self, *args, **kwargs): ...
    def include_x_bounds(self) -> bool: ...
    def is_equality(self) -> list[bool]: ...
    def lagrangian_size(self) -> int: ...
    def prog(self) -> MathematicalProgram: ...
    def s_size(self) -> int: ...
    def x_lo(self, *args, **kwargs): ...
    def x_up(self, *args, **kwargs): ...

class Binding𝓣BoundingBoxConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: BoundingBoxConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> BoundingBoxConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTBoundingBoxConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣Constraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    @overload
    def __init__(self, c: Constraint, v) -> None: ...
    @overload
    def __init__(self, arg: object) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> Constraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣Cost𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    @overload
    def __init__(self, c: Cost, v) -> None: ...
    @overload
    def __init__(self, arg: object) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> Cost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTCostU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣EvaluatorBase𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    @overload
    def __init__(self, c: EvaluatorBase, v) -> None: ...
    @overload
    def __init__(self, arg: object) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> EvaluatorBase: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTEvaluatorBaseU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣ExponentialConeConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: ExponentialConeConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> ExponentialConeConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTExponentialConeConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣ExpressionConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: ExpressionConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> ExpressionConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTExpressionConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣ExpressionCost𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: ExpressionCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> ExpressionCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTExpressionCostU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣L1NormCost𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: L1NormCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> L1NormCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTL1NormCostU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣L2NormCost𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: L2NormCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> L2NormCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTL2NormCostU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣LInfNormCost𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LInfNormCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LInfNormCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLInfNormCostU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣LinearComplementarityConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LinearComplementarityConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LinearComplementarityConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLinearComplementarityConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣LinearConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LinearConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LinearConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLinearConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣LinearCost𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LinearCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LinearCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLinearCostU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣LinearEqualityConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LinearEqualityConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LinearEqualityConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLinearEqualityConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣LinearMatrixInequalityConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LinearMatrixInequalityConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LinearMatrixInequalityConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLinearMatrixInequalityConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣LorentzConeConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LorentzConeConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LorentzConeConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLorentzConeConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣MinimumValueLowerBoundConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: MinimumValueLowerBoundConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> MinimumValueLowerBoundConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTMinimumValueLowerBoundConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣MinimumValueUpperBoundConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: MinimumValueUpperBoundConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> MinimumValueUpperBoundConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTMinimumValueUpperBoundConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣PerspectiveQuadraticCost𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: PerspectiveQuadraticCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> PerspectiveQuadraticCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTPerspectiveQuadraticCostU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣PositiveSemidefiniteConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: PositiveSemidefiniteConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> PositiveSemidefiniteConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTPositiveSemidefiniteConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣QuadraticConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: QuadraticConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> QuadraticConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTQuadraticConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣QuadraticCost𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: QuadraticCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> QuadraticCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTQuadraticCostU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣RotatedLorentzConeConstraint𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: RotatedLorentzConeConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> RotatedLorentzConeConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTRotatedLorentzConeConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class Binding𝓣VisualizationCallback𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: VisualizationCallback, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> VisualizationCallback: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTVisualizationCallbackU) -> bool: ...
    def __hash__(self) -> int: ...

class BoundingBoxConstraint(LinearConstraint):
    def __init__(self, lb, ub) -> None: ...

class ClarabelSolver(SolverInterface):
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...

class ClarabelSolverDetails:
    def __init__(self, *args, **kwargs) -> None: ...
    @property
    def iterations(self) -> int: ...
    @property
    def solve_time(self) -> float: ...
    @property
    def status(self) -> str: ...

class ClpSolver(SolverInterface):
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...

class ClpSolverDetails:
    def __init__(self, *args, **kwargs) -> None: ...
    @property
    def status(self) -> int: ...

class CommonSolverOption(enum.Enum):
    __new__: ClassVar[Callable] = ...
    _generate_next_value_: ClassVar[Callable] = ...
    _hashable_values_: ClassVar[list] = ...
    _member_map_: ClassVar[dict] = ...
    _member_names_: ClassVar[list] = ...
    _member_type_: ClassVar[type[object]] = ...
    _unhashable_values_: ClassVar[list] = ...
    _unhashable_values_map_: ClassVar[dict] = ...
    _use_args_: ClassVar[bool] = ...
    _value2member_map_: ClassVar[dict] = ...
    _value_repr_: ClassVar[None] = ...
    kMaxThreads: ClassVar[CommonSolverOption] = ...
    kPrintFileName: ClassVar[CommonSolverOption] = ...
    kPrintToConsole: ClassVar[CommonSolverOption] = ...
    kStandaloneReproductionFileName: ClassVar[CommonSolverOption] = ...
    __nb_enum__: ClassVar[PyCapsule] = ...

class Constraint(EvaluatorBase):
    def __init__(self, *args, **kwargs) -> None: ...
    @overload
    def CheckSatisfied(self, x, tol: float = ...) -> bool: ...
    @overload
    def CheckSatisfied(self, x, tol: float = ...) -> bool: ...
    @overload
    def CheckSatisfied(self, x) -> pydrake.symbolic.Formula: ...
    def CheckSatisfiedVectorized(self, x, tol: float) -> list[bool]: ...
    def lower_bound(self, *args, **kwargs): ...
    def num_constraints(self) -> int: ...
    def upper_bound(self, *args, **kwargs): ...

class Cost(EvaluatorBase):
    def __init__(self, *args, **kwargs) -> None: ...

class CsdpSolver(SolverInterface):
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...

class CsdpSolverDetails:
    def __init__(self, *args, **kwargs) -> None: ...
    @property
    def Z_val(self): ...
    @property
    def dual_objective(self) -> float: ...
    @property
    def primal_objective(self) -> float: ...
    @property
    def return_code(self) -> int: ...
    @property
    def y_val(self): ...

class EvaluatorBase:
    def __init__(self, *args, **kwargs) -> None: ...
    def Eval(self, *args, **kwargs): ...
    def SetGradientSparsityPattern(self, gradient_sparsity_pattern: collections.abc.Sequence[tuple[int, int]]) -> None: ...
    @overload
    def ToLatex(self, vars, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def get_description(self) -> str: ...
    def gradient_sparsity_pattern(self) -> list[tuple[int, int]] | None: ...
    def is_thread_safe(self) -> bool: ...
    def num_outputs(self) -> int: ...
    def num_vars(self) -> int: ...
    def set_description(self, arg: str) -> None: ...

class ExponentialConeConstraint(Constraint):
    def __init__(self, A: scipy.sparse.csc_matrix[float], b) -> None: ...
    def A(self, *args, **kwargs): ...
    def b(self, *args, **kwargs): ...

class ExpressionConstraint(Constraint):
    def __init__(self, v, lb, ub) -> None: ...
    def expressions(self, *args, **kwargs): ...
    def vars(self, *args, **kwargs): ...

class ExpressionCost(Cost):
    def __init__(self, e: pydrake.symbolic.Expression) -> None: ...
    def expression(self) -> pydrake.symbolic.Expression: ...
    def vars(self, *args, **kwargs): ...

class GurobiSolver(SolverInterface):
    class License:
        def __init__(self, *args, **kwargs) -> None: ...
        def is_valid(self) -> bool: ...
        def __enter__(self) -> GurobiSolver.License: ...
        def __exit__(self, *args, **kwargs) -> None: ...

    class SolveStatusInfo:
        def __init__(self, *args, **kwargs) -> None: ...
        @property
        def best_bound(self) -> float: ...
        @property
        def best_objective(self) -> float: ...
        @property
        def current_objective(self) -> float: ...
        @property
        def explored_node_count(self) -> int: ...
        @property
        def feasible_solutions_count(self) -> int: ...
        @property
        def reported_runtime(self) -> float: ...
    AcquireLicense: ClassVar[nanobind.nb_func] = ...
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...
    def AddMipNodeCallback(self, callback) -> None: ...
    def AddMipSolCallback(self, callback: collections.abc.Callable[[MathematicalProgram, GurobiSolver.SolveStatusInfo], None]) -> None: ...

class GurobiSolverDetails:
    def __init__(self, *args, **kwargs) -> None: ...
    @property
    def error_code(self) -> int: ...
    @property
    def objective_bound(self) -> float: ...
    @property
    def optimization_status(self) -> int: ...
    @property
    def optimizer_time(self) -> float: ...

class IntervalBinning(enum.Enum):
    __new__: ClassVar[Callable] = ...
    _generate_next_value_: ClassVar[Callable] = ...
    _hashable_values_: ClassVar[list] = ...
    _member_map_: ClassVar[dict] = ...
    _member_names_: ClassVar[list] = ...
    _member_type_: ClassVar[type[object]] = ...
    _unhashable_values_: ClassVar[list] = ...
    _unhashable_values_map_: ClassVar[dict] = ...
    _use_args_: ClassVar[bool] = ...
    _value2member_map_: ClassVar[dict] = ...
    _value_repr_: ClassVar[None] = ...
    kLinear: ClassVar[IntervalBinning] = ...
    kLogarithmic: ClassVar[IntervalBinning] = ...
    __nb_enum__: ClassVar[PyCapsule] = ...

class IpoptSolver(SolverInterface):
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...

class IpoptSolverDetails:
    def __init__(self, *args, **kwargs) -> None: ...
    def ConvertStatusToString(self) -> str: ...
    @property
    def g(self): ...
    @property
    def lambda_val(self): ...
    @property
    def status(self) -> int: ...
    @property
    def z_L(self): ...
    @property
    def z_U(self): ...

class L1NormCost(Cost):
    def __init__(self, A, b) -> None: ...
    def A(self, *args, **kwargs): ...
    def UpdateCoefficients(self, new_A, new_b=...) -> None: ...
    def b(self, *args, **kwargs): ...
    def update_A_entry(self, i: int, j: int, val: float) -> None: ...
    def update_b_entry(self, i: int, val: float) -> None: ...

class L2NormCost(Cost):
    @overload
    def __init__(self, A, b) -> None: ...
    @overload
    def __init__(self, A: scipy.sparse.csc_matrix[float], b) -> None: ...
    def GetDenseA(self, *args, **kwargs): ...
    @overload
    def UpdateCoefficients(self, new_A, new_b=...) -> None: ...
    @overload
    def UpdateCoefficients(self, new_A: scipy.sparse.csc_matrix[float], new_b=...) -> None: ...
    def b(self, *args, **kwargs): ...
    def get_sparse_A(self) -> scipy.sparse.csc_matrix[float]: ...

class LInfNormCost(Cost):
    def __init__(self, A, b) -> None: ...
    def A(self, *args, **kwargs): ...
    def UpdateCoefficients(self, new_A, new_b=...) -> None: ...
    def b(self, *args, **kwargs): ...
    def update_A_entry(self, i: int, j: int, val: float) -> None: ...
    def update_b_entry(self, i: int, val: float) -> None: ...

class LinearComplementarityConstraint(Constraint):
    def __init__(self, *args, **kwargs) -> None: ...
    def M(self, *args, **kwargs): ...
    def q(self, *args, **kwargs): ...

class LinearConstraint(Constraint):
    @overload
    def __init__(self, A, lb, ub) -> None: ...
    @overload
    def __init__(self, A: scipy.sparse.csc_matrix[float], lb, ub) -> None: ...
    def GetDenseA(self, *args, **kwargs): ...
    def RemoveTinyCoefficient(self, tol: float) -> None: ...
    @overload
    def UpdateCoefficients(self, new_A, new_lb, new_ub) -> None: ...
    @overload
    def UpdateCoefficients(self, new_A: scipy.sparse.csc_matrix[float], new_lb, new_ub) -> None: ...
    def UpdateLowerBound(self, new_lb) -> None: ...
    def UpdateUpperBound(self, new_ub) -> None: ...
    def get_sparse_A(self) -> scipy.sparse.csc_matrix[float]: ...
    def is_dense_A_constructed(self) -> bool: ...
    def set_bounds(self, new_lb, new_ub) -> None: ...

class LinearCost(Cost):
    def __init__(self, a, b: float) -> None: ...
    def UpdateCoefficients(self, new_a, new_b: float = ...) -> None: ...
    def a(self, *args, **kwargs): ...
    def b(self) -> float: ...
    def update_coefficient_entry(self, i: int, val: float) -> None: ...
    def update_constant_term(self, new_b: float) -> None: ...

class LinearEqualityConstraint(LinearConstraint):
    @overload
    def __init__(self, Aeq, beq) -> None: ...
    @overload
    def __init__(self, Aeq: scipy.sparse.csc_matrix[float], beq) -> None: ...
    @overload
    def __init__(self, a, beq: float) -> None: ...
    @overload
    def UpdateCoefficients(self, Aeq, beq) -> None: ...
    @overload
    def UpdateCoefficients(self, Aeq: scipy.sparse.csc_matrix[float], beq) -> None: ...

class LinearMatrixInequalityConstraint(Constraint):
    def __init__(self, F, symmetry_tolerance: float = ...) -> None: ...
    def F(self, *args, **kwargs): ...
    @overload
    def matrix_rows(self) -> int: ...
    @overload
    def matrix_rows(self) -> Any: ...

class LorentzConeConstraint(Constraint):
    class EvalType(enum.Enum):
        __new__: ClassVar[Callable] = ...
        _generate_next_value_: ClassVar[Callable] = ...
        _hashable_values_: ClassVar[list] = ...
        _member_map_: ClassVar[dict] = ...
        _member_names_: ClassVar[list] = ...
        _member_type_: ClassVar[type[object]] = ...
        _unhashable_values_: ClassVar[list] = ...
        _unhashable_values_map_: ClassVar[dict] = ...
        _use_args_: ClassVar[bool] = ...
        _value2member_map_: ClassVar[dict] = ...
        _value_repr_: ClassVar[None] = ...
        kConvex: ClassVar[LorentzConeConstraint.EvalType] = ...
        kConvexSmooth: ClassVar[LorentzConeConstraint.EvalType] = ...
        kNonconvex: ClassVar[LorentzConeConstraint.EvalType] = ...
        __nb_enum__: ClassVar[PyCapsule] = ...
    def __init__(self, A, b, eval_type: LorentzConeConstraint.EvalType = ...) -> None: ...
    def A(self) -> scipy.sparse.csc_matrix[float]: ...
    def UpdateCoefficients(self, new_A, new_b) -> None: ...
    def b(self, *args, **kwargs): ...
    def eval_type(self) -> LorentzConeConstraint.EvalType: ...

class MathematicalProgram:
    class NonnegativePolynomial(enum.Enum):
        __new__: ClassVar[Callable] = ...
        _generate_next_value_: ClassVar[Callable] = ...
        _hashable_values_: ClassVar[list] = ...
        _member_map_: ClassVar[dict] = ...
        _member_names_: ClassVar[list] = ...
        _member_type_: ClassVar[type[object]] = ...
        _unhashable_values_: ClassVar[list] = ...
        _unhashable_values_map_: ClassVar[dict] = ...
        _use_args_: ClassVar[bool] = ...
        _value2member_map_: ClassVar[dict] = ...
        _value_repr_: ClassVar[None] = ...
        kDsos: ClassVar[MathematicalProgram.NonnegativePolynomial] = ...
        kSdsos: ClassVar[MathematicalProgram.NonnegativePolynomial] = ...
        kSos: ClassVar[MathematicalProgram.NonnegativePolynomial] = ...
        __nb_enum__: ClassVar[PyCapsule] = ...
    def __init__(self) -> None: ...
    def Add2NormSquaredCost(self, A, b, vars) -> BindingTQuadraticCostU: ...
    def AddBoundingBoxConstraint(self, arg0, arg1, arg2) -> BindingTBoundingBoxConstraintU: ...
    @overload
    def AddConstraint(self, func: collections.abc.Callable, lb, ub, vars, description: str = ...) -> BindingTConstraintU: ...
    @overload
    def AddConstraint(self, arg0: pydrake.symbolic.Expression, arg1: float, arg2: float) -> BindingTConstraintU: ...
    @overload
    def AddConstraint(self, constraint: Constraint, vars) -> BindingTConstraintU: ...
    @overload
    def AddConstraint(self, formulas) -> BindingTConstraintU: ...
    @overload
    def AddConstraint(self, binding: BindingTConstraintU) -> BindingTConstraintU: ...
    @overload
    def AddCost(self, func: collections.abc.Callable, vars, description: str = ...) -> BindingTCostU: ...
    @overload
    def AddCost(self, binding: BindingTCostU) -> BindingTCostU: ...
    @overload
    def AddCost(self, e: pydrake.symbolic.Expression) -> BindingTCostU: ...
    @overload
    def AddCost(self, obj: Cost, vars) -> BindingTCostU: ...
    def AddDecisionVariables(self, decision_variables) -> None: ...
    def AddEqualityConstraintBetweenPolynomials(self, p1: pydrake.symbolic.Polynomial, p2: pydrake.symbolic.Polynomial) -> list[BindingTLinearEqualityConstraintU]: ...
    @overload
    def AddExponentialConeConstraint(self, A, b, vars) -> BindingTExponentialConeConstraintU: ...
    @overload
    def AddExponentialConeConstraint(self, z) -> BindingTExponentialConeConstraintU: ...
    def AddIndeterminate(self, new_indeterminate: pydrake.symbolic.Variable) -> int: ...
    @overload
    def AddIndeterminates(self, new_indeterminates) -> None: ...
    @overload
    def AddIndeterminates(self, new_indeterminates: pydrake.symbolic.Variables) -> None: ...
    def AddL1NormCostInEpigraphForm(self, *args, **kwargs): ...
    @overload
    def AddL2NormCost(self, A, b, vars) -> BindingTL2NormCostU: ...
    @overload
    def AddL2NormCost(self, e: pydrake.symbolic.Expression, psd_tol: float = ..., coefficient_tol: float = ...) -> BindingTL2NormCostU: ...
    def AddL2NormCostUsingConicConstraint(self, A, b, vars) -> tuple[pydrake.symbolic.Variable, BindingTLinearCostU, BindingTLorentzConeConstraintU]: ...
    def AddLinearComplementarityConstraint(self, M, q, vars) -> BindingTLinearComplementarityConstraintU: ...
    @overload
    def AddLinearConstraint(self, A, lb, ub, vars) -> BindingTLinearConstraintU: ...
    @overload
    def AddLinearConstraint(self, a, lb: float, ub: float, vars) -> BindingTLinearConstraintU: ...
    @overload
    def AddLinearConstraint(self, A: scipy.sparse.csc_matrix[float], lb, ub, vars) -> BindingTLinearConstraintU: ...
    @overload
    def AddLinearConstraint(self, e: pydrake.symbolic.Expression, lb: float, ub: float) -> BindingTLinearConstraintU: ...
    @overload
    def AddLinearConstraint(self, v, lb, ub) -> BindingTLinearConstraintU: ...
    @overload
    def AddLinearConstraint(self, f: pydrake.symbolic.Formula) -> BindingTLinearConstraintU: ...
    @overload
    def AddLinearConstraint(self, formulas) -> BindingTLinearConstraintU: ...
    @overload
    def AddLinearCost(self, e: pydrake.symbolic.Expression) -> BindingTLinearCostU: ...
    @overload
    def AddLinearCost(self, a, b: float, vars) -> BindingTLinearCostU: ...
    @overload
    def AddLinearCost(self, a, vars) -> BindingTLinearCostU: ...
    @overload
    def AddLinearEqualityConstraint(self, Aeq, beq, vars) -> BindingTLinearEqualityConstraintU: ...
    @overload
    def AddLinearEqualityConstraint(self, a, beq: float, vars) -> BindingTLinearEqualityConstraintU: ...
    @overload
    def AddLinearEqualityConstraint(self, Aeq: scipy.sparse.csc_matrix[float], beq, vars) -> BindingTLinearEqualityConstraintU: ...
    @overload
    def AddLinearEqualityConstraint(self, e: pydrake.symbolic.Expression, b: float) -> BindingTLinearEqualityConstraintU: ...
    @overload
    def AddLinearEqualityConstraint(self, f: pydrake.symbolic.Formula) -> BindingTLinearEqualityConstraintU: ...
    @overload
    def AddLinearEqualityConstraint(self, formulas) -> BindingTLinearEqualityConstraintU: ...
    @overload
    def AddLinearEqualityConstraint(self, v, b) -> BindingTLinearEqualityConstraintU: ...
    @overload
    def AddLinearMatrixInequalityConstraint(self, F, vars) -> BindingTLinearMatrixInequalityConstraintU: ...
    @overload
    def AddLinearMatrixInequalityConstraint(self, X) -> BindingTLinearMatrixInequalityConstraintU: ...
    def AddLogDeterminantLowerBoundConstraint(self, *args, **kwargs): ...
    @overload
    def AddLorentzConeConstraint(self, f: pydrake.symbolic.Formula, eval_type: LorentzConeConstraint.EvalType = ..., psd_tol: float = ..., coefficient_tol: float = ...) -> BindingTLorentzConeConstraintU: ...
    @overload
    def AddLorentzConeConstraint(self, v, eval_type: LorentzConeConstraint.EvalType = ...) -> BindingTLorentzConeConstraintU: ...
    @overload
    def AddLorentzConeConstraint(self, linear_expression: pydrake.symbolic.Expression, quadratic_expression: pydrake.symbolic.Expression, tol: float = ..., eval_type: LorentzConeConstraint.EvalType = ...) -> BindingTLorentzConeConstraintU: ...
    @overload
    def AddLorentzConeConstraint(self, A, b, vars, eval_type: LorentzConeConstraint.EvalType = ...) -> BindingTLorentzConeConstraintU: ...
    @overload
    def AddMaximizeGeometricMeanCost(self, A, b, x) -> BindingTLinearCostU: ...
    @overload
    def AddMaximizeGeometricMeanCost(self, x, c: float) -> BindingTLinearCostU: ...
    def AddMaximizeLogDeterminantCost(self, *args, **kwargs): ...
    @overload
    def AddPositiveDiagonallyDominantDualConeMatrixConstraint(self, X) -> BindingTLinearConstraintU: ...
    @overload
    def AddPositiveDiagonallyDominantDualConeMatrixConstraint(self, X) -> BindingTLinearConstraintU: ...
    def AddPositiveDiagonallyDominantMatrixConstraint(self, *args, **kwargs): ...
    @overload
    def AddPositiveSemidefiniteConstraint(self, arg) -> BindingTPositiveSemidefiniteConstraintU: ...
    @overload
    def AddPositiveSemidefiniteConstraint(self, e) -> Any: ...
    def AddPrincipalSubmatrixIsPsdConstraint(self, arg0, arg1: collections.abc.Set[int]) -> BindingTPositiveSemidefiniteConstraintU: ...
    def AddQuadraticAsRotatedLorentzConeConstraint(self, Q, b, c: float, vars, psd_tol: float = ...) -> BindingTRotatedLorentzConeConstraintU: ...
    @overload
    def AddQuadraticConstraint(self, Q, b, lb: float, ub: float, vars, hessian_type: QuadraticConstraint.HessianType | None = ...) -> BindingTQuadraticConstraintU: ...
    @overload
    def AddQuadraticConstraint(self, e: pydrake.symbolic.Expression, lb: float, ub: float, hessian_type: QuadraticConstraint.HessianType | None = ...) -> BindingTQuadraticConstraintU: ...
    @overload
    def AddQuadraticCost(self, e: pydrake.symbolic.Expression, is_convex: bool | None = ...) -> BindingTQuadraticCostU: ...
    @overload
    def AddQuadraticCost(self, Q, b, vars, is_convex: bool | None = ...) -> BindingTQuadraticCostU: ...
    @overload
    def AddQuadraticCost(self, Q, b, c: float, vars, is_convex: bool | None = ...) -> BindingTQuadraticCostU: ...
    @overload
    def AddQuadraticErrorCost(self, w: float, x_desired, vars) -> BindingTQuadraticCostU: ...
    @overload
    def AddQuadraticErrorCost(self, Q, x_desired, vars) -> BindingTQuadraticCostU: ...
    @overload
    def AddRotatedLorentzConeConstraint(self, linear_expression1: pydrake.symbolic.Expression, linear_expression2: pydrake.symbolic.Expression, quadratic_expression: pydrake.symbolic.Expression, tol: float = ...) -> BindingTRotatedLorentzConeConstraintU: ...
    @overload
    def AddRotatedLorentzConeConstraint(self, v) -> BindingTRotatedLorentzConeConstraintU: ...
    @overload
    def AddRotatedLorentzConeConstraint(self, A, b, vars) -> BindingTRotatedLorentzConeConstraintU: ...
    @overload
    def AddScaledDiagonallyDominantDualConeMatrixConstraint(self, X) -> list[BindingTRotatedLorentzConeConstraintU]: ...
    @overload
    def AddScaledDiagonallyDominantDualConeMatrixConstraint(self, X) -> list[BindingTRotatedLorentzConeConstraintU]: ...
    def AddScaledDiagonallyDominantMatrixConstraint(self, *args, **kwargs): ...
    def AddSosConstraint(self, *args, **kwargs): ...
    def AddVisualizationCallback(self, arg0, arg1) -> BindingTVisualizationCallbackU: ...
    @overload
    def CheckSatisfied(self, binding: BindingTConstraintU, prog_var_vals, tol: float = ...) -> bool: ...
    @overload
    def CheckSatisfied(self, bindings: collections.abc.Sequence[BindingTConstraintU], prog_var_vals, tol: float = ...) -> bool: ...
    @overload
    def CheckSatisfiedAtInitialGuess(self, binding: BindingTConstraintU, tol: float = ...) -> bool: ...
    @overload
    def CheckSatisfiedAtInitialGuess(self, bindings: collections.abc.Sequence[BindingTConstraintU], tol: float = ...) -> bool: ...
    def ClearVariableScaling(self) -> None: ...
    def Clone(self) -> MathematicalProgram: ...
    def EvalBinding(self, *args, **kwargs): ...
    def EvalBindingAtInitialGuess(self, *args, **kwargs): ...
    def EvalBindingVectorized(self, *args, **kwargs): ...
    def EvalBindings(self, *args, **kwargs): ...
    def FindDecisionVariableIndex(self, var: pydrake.symbolic.Variable) -> int: ...
    def FindDecisionVariableIndices(self, vars) -> list[int]: ...
    def FindIndeterminateIndex(self, var: pydrake.symbolic.Variable) -> int: ...
    def GetAllConstraints(self) -> list[BindingTConstraintU]: ...
    def GetAllCosts(self) -> list[BindingTCostU]: ...
    def GetBindingVariableValues(self, *args, **kwargs): ...
    def GetInitialGuess(self, arg: pydrake.symbolic.Variable) -> float: ...
    def GetLinearConstraints(self) -> list[BindingTLinearConstraintU]: ...
    def GetVariableScaling(self) -> dict[int, float]: ...
    def IsThreadSafe(self) -> bool: ...
    def MakePolynomial(self, e: pydrake.symbolic.Expression) -> pydrake.symbolic.Polynomial: ...
    def NewBinaryVariables(self, *args, **kwargs): ...
    def NewContinuousVariables(self, *args, **kwargs): ...
    def NewEvenDegreeDsosPolynomial(self, *args, **kwargs): ...
    def NewEvenDegreeFreePolynomial(self, indeterminates: pydrake.symbolic.Variables, degree: int, coeff_name: str = ...) -> pydrake.symbolic.Polynomial: ...
    def NewEvenDegreeNonnegativePolynomial(self, *args, **kwargs): ...
    def NewEvenDegreeSdsosPolynomial(self, *args, **kwargs): ...
    def NewEvenDegreeSosPolynomial(self, *args, **kwargs): ...
    def NewFreePolynomial(self, indeterminates: pydrake.symbolic.Variables, deg: int, coeff_name: str = ...) -> pydrake.symbolic.Polynomial: ...
    def NewIndeterminates(self, *args, **kwargs): ...
    def NewOddDegreeFreePolynomial(self, indeterminates: pydrake.symbolic.Variables, degree: int, coeff_name: str = ...) -> pydrake.symbolic.Polynomial: ...
    def NewSosPolynomial(self, gramian, monomial_basis, type: MathematicalProgram.NonnegativePolynomial = ...) -> pydrake.symbolic.Polynomial: ...
    def NewSymmetricContinuousVariables(self, *args, **kwargs): ...
    def RelaxPsdConstraintToDdDualCone(self, constraint: BindingTPositiveSemidefiniteConstraintU) -> BindingTLinearConstraintU: ...
    def RelaxPsdConstraintToSddDualCone(self, constraint: BindingTPositiveSemidefiniteConstraintU) -> list[BindingTRotatedLorentzConeConstraintU]: ...
    def RemoveConstraint(self, constraint: BindingTConstraintU) -> int: ...
    def RemoveCost(self, cost: BindingTCostU) -> int: ...
    def RemoveDecisionVariable(self, var: pydrake.symbolic.Variable) -> int: ...
    def RemoveVisualizationCallback(self, callback: BindingTVisualizationCallbackU) -> int: ...
    def Reparse(self, p: pydrake.symbolic.Polynomial) -> None: ...
    @overload
    def SetDecisionVariableValueInVector(self, decision_variable: pydrake.symbolic.Variable, decision_variable_new_value: float, values) -> None: ...
    @overload
    def SetDecisionVariableValueInVector(self, decision_variables, decision_variables_new_values, values) -> None: ...
    def SetInitialGuess(self, arg0: pydrake.symbolic.Variable, arg1: float) -> None: ...
    def SetInitialGuessForAllVariables(self, arg) -> None: ...
    @overload
    def SetSolverOption(self, solver_id: SolverId, solver_option: str, option_value: float) -> None: ...
    @overload
    def SetSolverOption(self, solver_id: SolverId, solver_option: str, option_value: int) -> None: ...
    @overload
    def SetSolverOption(self, solver_id: SolverId, solver_option: str, option_value: str) -> None: ...
    @overload
    def SetSolverOption(self, arg0: SolverType, arg1: str, arg2: float) -> None: ...
    def SetSolverOptions(self, arg: SolverOptions) -> None: ...
    def SetVariableScaling(self, var: pydrake.symbolic.Variable, s: float) -> None: ...
    def TightenPsdConstraintToDd(self, *args, **kwargs): ...
    def TightenPsdConstraintToSdd(self, *args, **kwargs): ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def bounding_box_constraints(self) -> list[BindingTBoundingBoxConstraintU]: ...
    def decision_variable(self, i: int) -> pydrake.symbolic.Variable: ...
    def decision_variable_index(self) -> dict[int, int]: ...
    def decision_variables(self, *args, **kwargs): ...
    def exponential_cone_constraints(self) -> list[BindingTExponentialConeConstraintU]: ...
    def generic_constraints(self) -> list[BindingTConstraintU]: ...
    def generic_costs(self) -> list[BindingTCostU]: ...
    def indeterminate(self, i: int) -> pydrake.symbolic.Variable: ...
    def indeterminates(self, *args, **kwargs): ...
    def indeterminates_index(self) -> dict[int, int]: ...
    def initial_guess(self, *args, **kwargs): ...
    def l2norm_costs(self) -> list[BindingTL2NormCostU]: ...
    def linear_complementarity_constraints(self) -> list[BindingTLinearComplementarityConstraintU]: ...
    def linear_constraints(self) -> list[BindingTLinearConstraintU]: ...
    def linear_costs(self) -> list[BindingTLinearCostU]: ...
    def linear_equality_constraints(self) -> list[BindingTLinearEqualityConstraintU]: ...
    def linear_matrix_inequality_constraints(self) -> list[BindingTLinearMatrixInequalityConstraintU]: ...
    def lorentz_cone_constraints(self) -> list[BindingTLorentzConeConstraintU]: ...
    def num_indeterminates(self) -> int: ...
    def num_vars(self) -> int: ...
    def positive_semidefinite_constraints(self) -> list[BindingTPositiveSemidefiniteConstraintU]: ...
    def quadratic_constraints(self) -> list[BindingTQuadraticConstraintU]: ...
    def quadratic_costs(self) -> list[BindingTQuadraticCostU]: ...
    def required_capabilities(self) -> set[ProgramAttribute]: ...
    def rotated_lorentz_cone_constraints(self) -> list[BindingTRotatedLorentzConeConstraintU]: ...
    def solver_options(self) -> SolverOptions: ...
    def visualization_callbacks(self) -> list[BindingTVisualizationCallbackU]: ...
    def __copy__(self) -> MathematicalProgram: ...
    def __deepcopy__(self, arg: dict) -> MathematicalProgram: ...

class MathematicalProgramResult:
    def __init__(self) -> None: ...
    def EvalBinding(self, *args, **kwargs): ...
    def GetDualSolution(self, constraint) -> Any: ...
    def GetInfeasibleConstraintNames(self, prog: MathematicalProgram, tol: float | None = ...) -> list[str]: ...
    def GetInfeasibleConstraints(self, prog: MathematicalProgram, tol: float | None = ...) -> list[BindingTConstraintU]: ...
    def GetSolution(self, arg: pydrake.symbolic.Variable) -> float: ...
    def GetSuboptimalSolution(self, arg0: pydrake.symbolic.Variable, arg1: int) -> float: ...
    def SetSolution(self, var: pydrake.symbolic.Variable, value: float) -> None: ...
    def get_optimal_cost(self) -> float: ...
    def get_solution_result(self) -> SolutionResult: ...
    def get_solver_details(self) -> object: ...
    def get_solver_id(self) -> SolverId: ...
    def get_suboptimal_objective(self, solution_number: int) -> float: ...
    def get_x_val(self, *args, **kwargs): ...
    def is_success(self) -> bool: ...
    def num_suboptimal_solution(self) -> int: ...
    def set_solution_result(self, arg: SolutionResult) -> None: ...
    def set_x_val(self, x_val) -> None: ...

class MinimumValueLowerBoundConstraint(Constraint):
    def __init__(self, num_vars: int, minimum_value_lower: float, influence_value_offset: float, max_num_values: int, value_function, value_function_double=...) -> None: ...
    def influence_value(self) -> float: ...
    def minimum_value_lower(self) -> float: ...
    def set_penalty_function(self, new_penalty_function: collections.abc.Callable[[float, bool], tuple]) -> None: ...

class MinimumValueUpperBoundConstraint(Constraint):
    def __init__(self, num_vars: int, minimum_value_upper: float, influence_value_offset: float, max_num_values: int, value_function, value_function_double=...) -> None: ...
    def influence_value(self) -> float: ...
    def minimum_value_upper(self) -> float: ...
    def set_penalty_function(self, new_penalty_function: collections.abc.Callable[[float, bool], tuple]) -> None: ...

class MixedIntegerBranchAndBound:
    class Options:
        max_explored_nodes: int
        def __init__(self, **kwargs) -> None: ...
        def __copy__(self) -> MixedIntegerBranchAndBound.Options: ...
        def __deepcopy__(self, arg: dict) -> MixedIntegerBranchAndBound.Options: ...
        @property
        def __fields__(self): ...
    def __init__(self, prog: MathematicalProgram, solver_id: SolverId, options: MixedIntegerBranchAndBound.Options = ...) -> None: ...
    def GetOptimalCost(self) -> float: ...
    def GetSolution(self, mip_var: pydrake.symbolic.Variable, nth_best_solution: int = ...) -> float: ...
    def GetSubOptimalCost(self, nth_suboptimal_cost: int) -> float: ...
    def Solve(self) -> SolutionResult: ...

class MixedIntegerRotationConstraintGenerator:
    class Approach(enum.Enum):
        __new__: ClassVar[Callable] = ...
        _generate_next_value_: ClassVar[Callable] = ...
        _hashable_values_: ClassVar[list] = ...
        _member_map_: ClassVar[dict] = ...
        _member_names_: ClassVar[list] = ...
        _member_type_: ClassVar[type[object]] = ...
        _unhashable_values_: ClassVar[list] = ...
        _unhashable_values_map_: ClassVar[dict] = ...
        _use_args_: ClassVar[bool] = ...
        _value2member_map_: ClassVar[dict] = ...
        _value_repr_: ClassVar[None] = ...
        kBilinearMcCormick: ClassVar[MixedIntegerRotationConstraintGenerator.Approach] = ...
        kBoth: ClassVar[MixedIntegerRotationConstraintGenerator.Approach] = ...
        kBoxSphereIntersection: ClassVar[MixedIntegerRotationConstraintGenerator.Approach] = ...
        __nb_enum__: ClassVar[PyCapsule] = ...

    class ReturnType:
        def __init__(self, *args, **kwargs) -> None: ...
        @property
        def B_(self): ...
        @property
        def lambda_(self): ...
    def __init__(self, approach: MixedIntegerRotationConstraintGenerator.Approach, num_intervals_per_half_axis: int, interval_binning: IntervalBinning) -> None: ...
    def AddToProgram(self, R, prog: MathematicalProgram) -> MixedIntegerRotationConstraintGenerator.ReturnType: ...
    def interval_binning(self) -> IntervalBinning: ...
    def num_intervals_per_half_axis(self) -> int: ...
    def phi(self, *args, **kwargs): ...
    def phi_nonnegative(self, *args, **kwargs): ...

class MobyLcpSolver(SolverInterface):
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...

class MosekSolver(SolverInterface):
    class License:
        def __init__(self, *args, **kwargs) -> None: ...
        def is_valid(self) -> bool: ...
        def __enter__(self) -> MosekSolver.License: ...
        def __exit__(self, *args, **kwargs) -> None: ...
    AcquireLicense: ClassVar[nanobind.nb_func] = ...
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...

class MosekSolverDetails:
    def __init__(self, *args, **kwargs) -> None: ...
    @property
    def optimizer_time(self) -> float: ...
    @property
    def rescode(self) -> int: ...
    @property
    def solution_status(self) -> int: ...

class NloptSolver(SolverInterface):
    AlgorithmName: ClassVar[nanobind.nb_func] = ...
    ConstraintToleranceName: ClassVar[nanobind.nb_func] = ...
    MaxEvalName: ClassVar[nanobind.nb_func] = ...
    MaxTimeName: ClassVar[nanobind.nb_func] = ...
    XAbsoluteToleranceName: ClassVar[nanobind.nb_func] = ...
    XRelativeToleranceName: ClassVar[nanobind.nb_func] = ...
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...

class NloptSolverDetails:
    def __init__(self, *args, **kwargs) -> None: ...
    @property
    def status(self) -> int: ...

class OsqpSolver(SolverInterface):
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...

class OsqpSolverDetails:
    def __init__(self, *args, **kwargs) -> None: ...
    @property
    def dual_res(self) -> float: ...
    @property
    def iter(self) -> int: ...
    @property
    def polish_time(self) -> float: ...
    @property
    def primal_res(self) -> float: ...
    @property
    def run_time(self) -> float: ...
    @property
    def setup_time(self) -> float: ...
    @property
    def solve_time(self) -> float: ...
    @property
    def status_val(self) -> int: ...
    @property
    def y(self): ...

class PerspectiveQuadraticCost(Cost):
    def __init__(self, A, b) -> None: ...
    def A(self, *args, **kwargs): ...
    def UpdateCoefficients(self, new_A, new_b) -> None: ...
    def b(self, *args, **kwargs): ...
    def update_A_entry(self, i: int, j: int, val: float) -> None: ...
    def update_b_entry(self, i: int, val: float) -> None: ...

class PositiveSemidefiniteConstraint(Constraint):
    def __init__(self, rows: int) -> None: ...
    def matrix_rows(self) -> int: ...

class ProgramAttribute(enum.Enum):
    __new__: ClassVar[Callable] = ...
    _generate_next_value_: ClassVar[Callable] = ...
    _hashable_values_: ClassVar[list] = ...
    _member_map_: ClassVar[dict] = ...
    _member_names_: ClassVar[list] = ...
    _member_type_: ClassVar[type[object]] = ...
    _unhashable_values_: ClassVar[list] = ...
    _unhashable_values_map_: ClassVar[dict] = ...
    _use_args_: ClassVar[bool] = ...
    _value2member_map_: ClassVar[dict] = ...
    _value_repr_: ClassVar[None] = ...
    kBinaryVariable: ClassVar[ProgramAttribute] = ...
    kCallback: ClassVar[ProgramAttribute] = ...
    kExponentialConeConstraint: ClassVar[ProgramAttribute] = ...
    kGenericConstraint: ClassVar[ProgramAttribute] = ...
    kGenericCost: ClassVar[ProgramAttribute] = ...
    kL2NormCost: ClassVar[ProgramAttribute] = ...
    kLinearComplementarityConstraint: ClassVar[ProgramAttribute] = ...
    kLinearConstraint: ClassVar[ProgramAttribute] = ...
    kLinearCost: ClassVar[ProgramAttribute] = ...
    kLinearEqualityConstraint: ClassVar[ProgramAttribute] = ...
    kLorentzConeConstraint: ClassVar[ProgramAttribute] = ...
    kPositiveSemidefiniteConstraint: ClassVar[ProgramAttribute] = ...
    kQuadraticConstraint: ClassVar[ProgramAttribute] = ...
    kQuadraticCost: ClassVar[ProgramAttribute] = ...
    kRotatedLorentzConeConstraint: ClassVar[ProgramAttribute] = ...
    __nb_enum__: ClassVar[PyCapsule] = ...

class ProgramType(enum.Enum):
    __new__: ClassVar[Callable] = ...
    _generate_next_value_: ClassVar[Callable] = ...
    _hashable_values_: ClassVar[list] = ...
    _member_map_: ClassVar[dict] = ...
    _member_names_: ClassVar[list] = ...
    _member_type_: ClassVar[type[object]] = ...
    _unhashable_values_: ClassVar[list] = ...
    _unhashable_values_map_: ClassVar[dict] = ...
    _use_args_: ClassVar[bool] = ...
    _value2member_map_: ClassVar[dict] = ...
    _value_repr_: ClassVar[None] = ...
    kCGP: ClassVar[ProgramType] = ...
    kGP: ClassVar[ProgramType] = ...
    kLCP: ClassVar[ProgramType] = ...
    kLP: ClassVar[ProgramType] = ...
    kMILP: ClassVar[ProgramType] = ...
    kMIQP: ClassVar[ProgramType] = ...
    kMISDP: ClassVar[ProgramType] = ...
    kMISOCP: ClassVar[ProgramType] = ...
    kNLP: ClassVar[ProgramType] = ...
    kQP: ClassVar[ProgramType] = ...
    kQuadraticCostConicConstraint: ClassVar[ProgramType] = ...
    kSDP: ClassVar[ProgramType] = ...
    kSOCP: ClassVar[ProgramType] = ...
    kUnknown: ClassVar[ProgramType] = ...
    __nb_enum__: ClassVar[PyCapsule] = ...

class ProjectedGradientDescentSolver(SolverInterface):
    BacktrackingAlpha0OptionName: ClassVar[nanobind.nb_func] = ...
    BacktrackingCOptionName: ClassVar[nanobind.nb_func] = ...
    BacktrackingTauOptionName: ClassVar[nanobind.nb_func] = ...
    ConvergenceTolOptionName: ClassVar[nanobind.nb_func] = ...
    MaxIterationsOptionName: ClassVar[nanobind.nb_func] = ...
    id: ClassVar[nanobind.nb_func] = ...
    kDefaultBacktrackingAlpha0: ClassVar[float] = ...
    kDefaultBacktrackingC: ClassVar[float] = ...
    kDefaultBacktrackingTau: ClassVar[float] = ...
    kDefaultConvergenceTol: ClassVar[float] = ...
    kDefaultMaxIterations: ClassVar[int] = ...
    kDefaultMaxLineSearchSteps: ClassVar[int] = ...
    def __init__(self) -> None: ...
    def SetCustomGradientFunction(self, custom_gradient_function) -> None: ...
    def SetCustomProjectionFunction(self, custom_projection_function) -> None: ...
    def SetProjectionSolverInterface(self, projection_solver_interface: SolverInterface | None) -> None: ...

class PyFunctionConstraint(Constraint):
    def __init__(self, num_vars: int, func: collections.abc.Callable, lb, ub, description: str = ...) -> None: ...
    def UpdateLowerBound(self, new_lb) -> None: ...
    def UpdateUpperBound(self, new_ub) -> None: ...
    def set_bounds(self, lower_bound, upper_bound) -> None: ...

class PyFunctionCost(Cost):
    def __init__(self, num_vars: int, func: collections.abc.Callable, description: str = ...) -> None: ...

class QuadraticConstraint(Constraint):
    class HessianType(enum.Enum):
        __new__: ClassVar[Callable] = ...
        _generate_next_value_: ClassVar[Callable] = ...
        _hashable_values_: ClassVar[list] = ...
        _member_map_: ClassVar[dict] = ...
        _member_names_: ClassVar[list] = ...
        _member_type_: ClassVar[type[object]] = ...
        _unhashable_values_: ClassVar[list] = ...
        _unhashable_values_map_: ClassVar[dict] = ...
        _use_args_: ClassVar[bool] = ...
        _value2member_map_: ClassVar[dict] = ...
        _value_repr_: ClassVar[None] = ...
        kIndefinite: ClassVar[QuadraticConstraint.HessianType] = ...
        kNegativeSemidefinite: ClassVar[QuadraticConstraint.HessianType] = ...
        kPositiveSemidefinite: ClassVar[QuadraticConstraint.HessianType] = ...
        kZero: ClassVar[QuadraticConstraint.HessianType] = ...
        __nb_enum__: ClassVar[PyCapsule] = ...
    def __init__(self, Q0, b, lb: float, ub: float, hessian_type: QuadraticConstraint.HessianType | None = ...) -> None: ...
    def Q(self, *args, **kwargs): ...
    def UpdateCoefficients(self, new_Q, new_b, hessian_type: QuadraticConstraint.HessianType | None = ...) -> None: ...
    def b(self, *args, **kwargs): ...
    def hessian_type(self) -> QuadraticConstraint.HessianType: ...
    def is_convex(self) -> bool: ...

class QuadraticCost(Cost):
    def __init__(self, Q, b, c: float, is_convex: bool | None = ...) -> None: ...
    def Q(self, *args, **kwargs): ...
    def UpdateCoefficients(self, new_Q, new_b, new_c: float = ..., is_convex: bool | None = ...) -> None: ...
    def UpdateHessianEntry(self, i: int, j: int, val: float, is_hessian_psd: bool | None = ...) -> None: ...
    def b(self, *args, **kwargs): ...
    def c(self) -> float: ...
    def is_convex(self) -> bool: ...
    def update_constant_term(self, new_c: float) -> None: ...
    def update_linear_coefficient_entry(self, i: int, val: float) -> None: ...

class RemoveFreeVariableMethod(enum.Enum):
    __new__: ClassVar[Callable] = ...
    _generate_next_value_: ClassVar[Callable] = ...
    _hashable_values_: ClassVar[list] = ...
    _member_map_: ClassVar[dict] = ...
    _member_names_: ClassVar[list] = ...
    _member_type_: ClassVar[type[object]] = ...
    _unhashable_values_: ClassVar[list] = ...
    _unhashable_values_map_: ClassVar[dict] = ...
    _use_args_: ClassVar[bool] = ...
    _value2member_map_: ClassVar[dict] = ...
    _value_repr_: ClassVar[None] = ...
    kLorentzConeSlack: ClassVar[RemoveFreeVariableMethod] = ...
    kNullspace: ClassVar[RemoveFreeVariableMethod] = ...
    kTwoSlackVariables: ClassVar[RemoveFreeVariableMethod] = ...
    __nb_enum__: ClassVar[PyCapsule] = ...
    def __index__(self) -> int: ...

class RotatedLorentzConeConstraint(Constraint):
    def __init__(self, A, b) -> None: ...
    def A(self) -> scipy.sparse.csc_matrix[float]: ...
    def UpdateCoefficients(self, new_A, new_b) -> None: ...
    def b(self, *args, **kwargs): ...

class ScsSolver(SolverInterface):
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...

class ScsSolverDetails:
    def __init__(self, *args, **kwargs) -> None: ...
    @property
    def dual_objective(self) -> float: ...
    @property
    def duality_gap(self) -> float: ...
    @property
    def iter(self) -> int: ...
    @property
    def primal_objective(self) -> float: ...
    @property
    def primal_residue(self) -> float: ...
    @property
    def residue_infeasibility(self) -> float: ...
    @property
    def residue_unbounded_a(self) -> float: ...
    @property
    def residue_unbounded_p(self) -> float: ...
    @property
    def s(self): ...
    @property
    def scs_setup_time(self) -> float: ...
    @property
    def scs_solve_time(self) -> float: ...
    @property
    def scs_status(self) -> int: ...
    @property
    def y(self): ...

class SemidefiniteRelaxationOptions:
    add_implied_linear_constraints: bool
    add_implied_linear_equality_constraints: bool
    def __init__(self, **kwargs) -> None: ...
    def set_to_strongest(self) -> None: ...
    def set_to_weakest(self) -> None: ...

class SnoptSolver(SolverInterface):
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...

class SnoptSolverDetails:
    def __init__(self, *args, **kwargs) -> None: ...
    @property
    def F(self) -> Any: ...
    @property
    def Fmul(self): ...
    @property
    def info(self): ...
    @property
    def solve_time(self) -> float: ...
    @property
    def xmul(self): ...

class SolutionResult(enum.Enum):
    __new__: ClassVar[Callable] = ...
    _generate_next_value_: ClassVar[Callable] = ...
    _hashable_values_: ClassVar[list] = ...
    _member_map_: ClassVar[dict] = ...
    _member_names_: ClassVar[list] = ...
    _member_type_: ClassVar[type[object]] = ...
    _unhashable_values_: ClassVar[list] = ...
    _unhashable_values_map_: ClassVar[dict] = ...
    _use_args_: ClassVar[bool] = ...
    _value2member_map_: ClassVar[dict] = ...
    _value_repr_: ClassVar[None] = ...
    kDualInfeasible: ClassVar[SolutionResult] = ...
    kInfeasibleConstraints: ClassVar[SolutionResult] = ...
    kInfeasibleOrUnbounded: ClassVar[SolutionResult] = ...
    kInvalidInput: ClassVar[SolutionResult] = ...
    kIterationLimit: ClassVar[SolutionResult] = ...
    kSolutionFound: ClassVar[SolutionResult] = ...
    kSolutionResultNotSet: ClassVar[SolutionResult] = ...
    kSolverSpecificError: ClassVar[SolutionResult] = ...
    kUnbounded: ClassVar[SolutionResult] = ...
    __nb_enum__: ClassVar[PyCapsule] = ...

class SolverId:
    def __init__(self, name: str) -> None: ...
    def name(self) -> str: ...
    def __eq__(self, arg: SolverId) -> bool: ...
    def __hash__(self) -> int: ...
    def __ne__(self, arg: SolverId) -> bool: ...

class SolverInterface:
    def __init__(self) -> None: ...
    def AreProgramAttributesSatisfied(self, prog: MathematicalProgram) -> bool: ...
    def ExplainUnsatisfiedProgramAttributes(self, prog: MathematicalProgram) -> str: ...
    @overload
    def Solve(self, prog: MathematicalProgram, initial_guess, solver_options: SolverOptions | None, result: MathematicalProgramResult) -> None: ...
    @overload
    def Solve(self, prog: MathematicalProgram, initial_guess=..., solver_options: SolverOptions | None = ...) -> MathematicalProgramResult: ...
    def SolverName(self) -> str: ...
    def available(self) -> bool: ...
    def enabled(self) -> bool: ...
    def solver_id(self) -> SolverId: ...
    def solver_type(self) -> SolverType | None: ...

class SolverOptions:
    options: Incomplete
    def __init__(self, options: collections.abc.Mapping[str, collections.abc.Mapping[str, float | int | str]] = ...) -> None: ...
    @overload
    def SetOption(self, solver_id: SolverId, key: str, value: float | int | str) -> None: ...
    @overload
    def SetOption(self, key: CommonSolverOption, value: float | int | str) -> None: ...
    def __copy__(self) -> SolverOptions: ...
    def __deepcopy__(self, arg: dict) -> SolverOptions: ...
    def __eq__(self, arg: SolverOptions) -> bool: ...
    def __ne__(self, arg: SolverOptions) -> bool: ...
    @property
    def __fields__(self): ...

class SolverType(enum.Enum):
    __new__: ClassVar[Callable] = ...
    _generate_next_value_: ClassVar[Callable] = ...
    _hashable_values_: ClassVar[list] = ...
    _member_map_: ClassVar[dict] = ...
    _member_names_: ClassVar[list] = ...
    _member_type_: ClassVar[type[object]] = ...
    _unhashable_values_: ClassVar[list] = ...
    _unhashable_values_map_: ClassVar[dict] = ...
    _use_args_: ClassVar[bool] = ...
    _value2member_map_: ClassVar[dict] = ...
    _value_repr_: ClassVar[None] = ...
    kClp: ClassVar[SolverType] = ...
    kCsdp: ClassVar[SolverType] = ...
    kEqualityConstrainedQP: ClassVar[SolverType] = ...
    kGurobi: ClassVar[SolverType] = ...
    kIpopt: ClassVar[SolverType] = ...
    kLinearSystem: ClassVar[SolverType] = ...
    kMobyLCP: ClassVar[SolverType] = ...
    kMosek: ClassVar[SolverType] = ...
    kNlopt: ClassVar[SolverType] = ...
    kOsqp: ClassVar[SolverType] = ...
    kScs: ClassVar[SolverType] = ...
    kSnopt: ClassVar[SolverType] = ...
    kUnrevisedLemke: ClassVar[SolverType] = ...
    __nb_enum__: ClassVar[PyCapsule] = ...

class UnrevisedLemkeSolver(SolverInterface):
    id: ClassVar[nanobind.nb_func] = ...
    def __init__(self) -> None: ...

class VisualizationCallback(EvaluatorBase):
    def __init__(self, *args, **kwargs) -> None: ...

class _TemporaryName_N5drake7solvers7BindingINS0_10ConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    @overload
    def __init__(self, c: Constraint, v) -> None: ...
    @overload
    def __init__(self, arg: object) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> Constraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_10L1NormCostEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: L1NormCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> L1NormCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTL1NormCostU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_10L2NormCostEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: L2NormCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> L2NormCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTL2NormCostU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_10LinearCostEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LinearCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LinearCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLinearCostU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_12LInfNormCostEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LInfNormCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LInfNormCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLInfNormCostU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_13EvaluatorBaseEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    @overload
    def __init__(self, c: EvaluatorBase, v) -> None: ...
    @overload
    def __init__(self, arg: object) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> EvaluatorBase: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTEvaluatorBaseU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_13QuadraticCostEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: QuadraticCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> QuadraticCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTQuadraticCostU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_14ExpressionCostEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: ExpressionCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> ExpressionCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTExpressionCostU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_16LinearConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LinearConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LinearConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLinearConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_19QuadraticConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: QuadraticConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> QuadraticConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTQuadraticConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_20ExpressionConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: ExpressionConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> ExpressionConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTExpressionConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_21BoundingBoxConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: BoundingBoxConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> BoundingBoxConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTBoundingBoxConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_21LorentzConeConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LorentzConeConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LorentzConeConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLorentzConeConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_21VisualizationCallbackEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: VisualizationCallback, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> VisualizationCallback: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTVisualizationCallbackU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_24LinearEqualityConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LinearEqualityConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LinearEqualityConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLinearEqualityConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_24PerspectiveQuadraticCostEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: PerspectiveQuadraticCost, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> PerspectiveQuadraticCost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTPerspectiveQuadraticCostU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_25ExponentialConeConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: ExponentialConeConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> ExponentialConeConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTExponentialConeConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_28RotatedLorentzConeConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: RotatedLorentzConeConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> RotatedLorentzConeConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTRotatedLorentzConeConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_30PositiveSemidefiniteConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: PositiveSemidefiniteConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> PositiveSemidefiniteConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTPositiveSemidefiniteConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_31LinearComplementarityConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LinearComplementarityConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LinearComplementarityConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLinearComplementarityConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_32LinearMatrixInequalityConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: LinearMatrixInequalityConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> LinearMatrixInequalityConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTLinearMatrixInequalityConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_32MinimumValueLowerBoundConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: MinimumValueLowerBoundConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> MinimumValueLowerBoundConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTMinimumValueLowerBoundConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_32MinimumValueUpperBoundConstraintEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, c: MinimumValueUpperBoundConstraint, v) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> MinimumValueUpperBoundConstraint: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTMinimumValueUpperBoundConstraintU) -> bool: ...
    def __hash__(self) -> int: ...

class _TemporaryName_N5drake7solvers7BindingINS0_4CostEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    @overload
    def __init__(self, c: Cost, v) -> None: ...
    @overload
    def __init__(self, arg: object) -> None: ...
    @overload
    def ToLatex(self, precision: int = ...) -> str: ...
    @overload
    def ToLatex(self) -> Any: ...
    def evaluator(self) -> Cost: ...
    def variables(self, *args, **kwargs): ...
    def __eq__(self, arg: BindingTCostU) -> bool: ...
    def __hash__(self) -> int: ...
