from __future__ import annotations from typing import Final, overload from docplex.mp.basic import Expr from docplex.mp.linear import LinearExpr, MonomialExpr from docplex.mp.model import Model from docplex.mp.operand import LinearOperand from docplex.mp.quad import QuadExpr from docplex.mp.vartype import VarType class Var(LinearOperand): lb: float ub: float vartype: Final[VarType] def __init__( self, model: Model, vartype: VarType, name: str, lb: float | None = None, ub: float | None = None, ) -> None: ... def has_free_lb(self) -> bool: ... def has_free_ub(self) -> bool: ... def is_free(self) -> bool: ... def set_lb(self, ub: float | None) -> None: ... def set_ub(self, ub: float | None) -> None: ... def is_binary(self) -> bool: ... def is_integer(self) -> bool: ... def is_continuous(self) -> bool: ... def is_discrete(self) -> bool: ... def __sub__(self, e: Var | float) -> LinearExpr: ... def __rsub__(self, e: Var | float) -> LinearExpr: ... def __neg__(self) -> MonomialExpr: ... def __add__(self, other: Var | float) -> LinearExpr: ... def __radd__(self, other: Var | float) -> LinearExpr: ... @overload def __mul__(self, other: float) -> MonomialExpr: ... @overload def __mul__(self, other: Var) -> QuadExpr: ... @overload def __mul__(self, other: Expr) -> Expr: ... @overload def __rmul__(self, other: float) -> MonomialExpr: ... @overload def __rmul__(self, other: Expr) -> Expr: ... def __truediv__(self, other: float) -> MonomialExpr: ...