import collections.abc
import enum
import nanobind
import pydrake.autodiffutils
import pydrake.solvers
import pydrake.symbolic
import pydrake.systems.framework
import pydrake.trajectories
from _typeshed import Incomplete
from pydrake.common.cpp_template import IntegratorBase_ as IntegratorBase_, RungeKutta2Integrator_ as RungeKutta2Integrator_, RungeKutta3Integrator_ as RungeKutta3Integrator_, Simulator_ as Simulator_
from typing import Any, Callable, ClassVar, overload

ApplySimulatorConfig: nanobind.nb_func
BatchEvalTimeDerivatives: nanobind.nb_func
BatchEvalUniquePeriodicDiscreteUpdate: nanobind.nb_func
DiscreteTimeApproximation: nanobind.nb_func
ExtractSimulatorConfig: nanobind.nb_func
GetIntegrationSchemes: nanobind.nb_func
MonteCarloSimulation: nanobind.nb_func
PrintSimulatorStatistics: nanobind.nb_func
RandomSimulation: nanobind.nb_func
RegionOfAttraction: nanobind.nb_func
ResetIntegratorFromFlags: nanobind.nb_func

class InitializeParams:
    suppress_initialization_events: bool
    def __init__(self, **kwargs) -> None: ...
    def __copy__(self) -> InitializeParams: ...
    def __deepcopy__(self, arg: dict) -> InitializeParams: ...
    @property
    def __fields__(self): ...

class IntegratorBase:
    def __init__(self, *args, **kwargs) -> None: ...
    def GetStatisticsSummary(self) -> list[tuple[str, int | float]]: ...
    @overload
    def Initialize(self) -> None: ...
    @overload
    def Initialize(self) -> Any: ...
    @overload
    def Initialize(self) -> Any: ...
    def Reset(self) -> None: ...
    def ResetStatistics(self) -> None: ...
    def StartDenseIntegration(self) -> None: ...
    def StopDenseIntegration(self) -> pydrake.trajectories.PiecewisePolynomial: ...
    def get_actual_initial_step_size_taken(self) -> float: ...
    def get_context(self) -> pydrake.systems.framework.Context: ...
    def get_dense_output(self) -> pydrake.trajectories.PiecewisePolynomial: ...
    def get_fixed_step_mode(self) -> bool: ...
    def get_initial_step_size_target(self) -> float: ...
    def get_largest_step_size_taken(self) -> float: ...
    def get_maximum_step_size(self) -> float: ...
    def get_mutable_context(self) -> pydrake.systems.framework.Context: ...
    def get_num_derivative_evaluations(self) -> int: ...
    def get_num_step_shrinkages_from_error_control(self) -> int: ...
    def get_num_step_shrinkages_from_substep_failures(self) -> int: ...
    def get_num_steps_taken(self) -> int: ...
    def get_num_substep_failures(self) -> int: ...
    def get_requested_minimum_step_size(self) -> float: ...
    def get_smallest_adapted_step_size_taken(self) -> float: ...
    def get_target_accuracy(self) -> float: ...
    def get_throw_on_minimum_step_size_violation(self) -> bool: ...
    def request_initial_step_size_target(self, step_size: float) -> None: ...
    def reset_context(self, context: pydrake.systems.framework.Context | None = ...) -> None: ...
    def set_fixed_step_mode(self, flag: bool) -> None: ...
    @overload
    def set_maximum_step_size(self, max_step_size: float) -> None: ...
    @overload
    def set_maximum_step_size(self) -> Any: ...
    def set_requested_minimum_step_size(self, min_step_size: float) -> None: ...
    def set_target_accuracy(self, accuracy: float) -> None: ...
    def set_throw_on_minimum_step_size_violation(self, throws: bool) -> None: ...

class IntegratorBase_𝓣AutoDiffXd𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def GetStatisticsSummary(self) -> list[tuple[str, int | float]]: ...
    @overload
    def Initialize(self) -> None: ...
    @overload
    def Initialize(self) -> Any: ...
    @overload
    def Initialize(self) -> Any: ...
    def Reset(self) -> None: ...
    def ResetStatistics(self) -> None: ...
    def StartDenseIntegration(self) -> None: ...
    def StopDenseIntegration(self) -> pydrake.trajectories.PiecewisePolynomial_TAutoDiffXdU: ...
    def get_actual_initial_step_size_taken(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_context(self) -> pydrake.systems.framework.Context_TAutoDiffXdU: ...
    def get_dense_output(self) -> pydrake.trajectories.PiecewisePolynomial_TAutoDiffXdU: ...
    def get_fixed_step_mode(self) -> bool: ...
    def get_initial_step_size_target(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_largest_step_size_taken(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_maximum_step_size(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_mutable_context(self) -> pydrake.systems.framework.Context_TAutoDiffXdU: ...
    def get_num_derivative_evaluations(self) -> int: ...
    def get_num_step_shrinkages_from_error_control(self) -> int: ...
    def get_num_step_shrinkages_from_substep_failures(self) -> int: ...
    def get_num_steps_taken(self) -> int: ...
    def get_num_substep_failures(self) -> int: ...
    def get_requested_minimum_step_size(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_smallest_adapted_step_size_taken(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_target_accuracy(self) -> float: ...
    def get_throw_on_minimum_step_size_violation(self) -> bool: ...
    def request_initial_step_size_target(self, step_size: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def reset_context(self, context: pydrake.systems.framework.Context_TAutoDiffXdU | None = ...) -> None: ...
    def set_fixed_step_mode(self, flag: bool) -> None: ...
    @overload
    def set_maximum_step_size(self, max_step_size: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    @overload
    def set_maximum_step_size(self) -> Any: ...
    def set_requested_minimum_step_size(self, min_step_size: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def set_target_accuracy(self, accuracy: float) -> None: ...
    def set_throw_on_minimum_step_size_violation(self, throws: bool) -> None: ...

class IntegratorBase_𝓣Expression𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def GetStatisticsSummary(self) -> list[tuple[str, int | float]]: ...
    @overload
    def Initialize(self) -> None: ...
    @overload
    def Initialize(self) -> Any: ...
    @overload
    def Initialize(self) -> Any: ...
    def Reset(self) -> None: ...
    def ResetStatistics(self) -> None: ...
    def StartDenseIntegration(self) -> None: ...
    def StopDenseIntegration(self) -> pydrake.trajectories.PiecewisePolynomial_TExpressionU: ...
    def get_actual_initial_step_size_taken(self) -> pydrake.symbolic.Expression: ...
    def get_context(self) -> pydrake.systems.framework.Context_TExpressionU: ...
    def get_dense_output(self) -> pydrake.trajectories.PiecewisePolynomial_TExpressionU: ...
    def get_fixed_step_mode(self) -> bool: ...
    def get_initial_step_size_target(self) -> pydrake.symbolic.Expression: ...
    def get_largest_step_size_taken(self) -> pydrake.symbolic.Expression: ...
    def get_maximum_step_size(self) -> pydrake.symbolic.Expression: ...
    def get_mutable_context(self) -> pydrake.systems.framework.Context_TExpressionU: ...
    def get_num_derivative_evaluations(self) -> int: ...
    def get_num_step_shrinkages_from_error_control(self) -> int: ...
    def get_num_step_shrinkages_from_substep_failures(self) -> int: ...
    def get_num_steps_taken(self) -> int: ...
    def get_num_substep_failures(self) -> int: ...
    def get_requested_minimum_step_size(self) -> pydrake.symbolic.Expression: ...
    def get_smallest_adapted_step_size_taken(self) -> pydrake.symbolic.Expression: ...
    def get_target_accuracy(self) -> float: ...
    def get_throw_on_minimum_step_size_violation(self) -> bool: ...
    def request_initial_step_size_target(self, step_size: pydrake.symbolic.Expression) -> None: ...
    def reset_context(self, context: pydrake.systems.framework.Context_TExpressionU | None = ...) -> None: ...
    def set_fixed_step_mode(self, flag: bool) -> None: ...
    @overload
    def set_maximum_step_size(self, max_step_size: pydrake.symbolic.Expression) -> None: ...
    @overload
    def set_maximum_step_size(self) -> Any: ...
    def set_requested_minimum_step_size(self, min_step_size: pydrake.symbolic.Expression) -> None: ...
    def set_target_accuracy(self, accuracy: float) -> None: ...
    def set_throw_on_minimum_step_size_violation(self, throws: bool) -> None: ...

class RandomSimulationResult:
    generator_snapshot: Incomplete
    output: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...

class RegionOfAttractionOptions:
    lyapunov_candidate: pydrake.symbolic.Expression
    solver_id: pydrake.solvers.SolverId | None
    solver_options: pydrake.solvers.SolverOptions | None
    state_variables: Incomplete
    use_implicit_dynamics: bool
    def __init__(self) -> None: ...
    def __copy__(self) -> RegionOfAttractionOptions: ...
    def __deepcopy__(self, arg: dict) -> RegionOfAttractionOptions: ...

class RungeKutta2Integrator(IntegratorBase):
    def __init__(self, system: pydrake.systems.framework.System, max_step_size: float, context: pydrake.systems.framework.Context | None = ...) -> None: ...

class RungeKutta2Integrator_𝓣AutoDiffXd𝓤(IntegratorBase_TAutoDiffXdU):
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, system: pydrake.systems.framework.System_TAutoDiffXdU, max_step_size: pydrake.autodiffutils.AutoDiffXd, context: pydrake.systems.framework.Context_TAutoDiffXdU | None = ...) -> None: ...

class RungeKutta2Integrator_𝓣Expression𝓤(IntegratorBase_TExpressionU):
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, system: pydrake.systems.framework.System_TExpressionU, max_step_size: pydrake.symbolic.Expression, context: pydrake.systems.framework.Context_TExpressionU | None = ...) -> None: ...

class RungeKutta3Integrator(IntegratorBase):
    def __init__(self, system: pydrake.systems.framework.System, context: pydrake.systems.framework.Context | None = ...) -> None: ...

class RungeKutta3Integrator_𝓣AutoDiffXd𝓤(IntegratorBase_TAutoDiffXdU):
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, system: pydrake.systems.framework.System_TAutoDiffXdU, context: pydrake.systems.framework.Context_TAutoDiffXdU | None = ...) -> None: ...

class Simulator:
    def __init__(self, system: pydrake.systems.framework.System, context: object | None = ...) -> None: ...
    def AdvancePendingEvents(self) -> SimulatorStatus: ...
    def AdvanceTo(self, boundary_time: float, interruptible: bool = ...) -> SimulatorStatus: ...
    def Initialize(self, params: InitializeParams = ...) -> SimulatorStatus: ...
    def ResetStatistics(self) -> None: ...
    def clear_monitor(self) -> None: ...
    def get_actual_realtime_rate(self) -> float: ...
    def get_context(self) -> pydrake.systems.framework.Context: ...
    def get_integrator(self) -> IntegratorBase: ...
    def get_monitor(self) -> collections.abc.Callable[[pydrake.systems.framework.Context], pydrake.systems.framework.EventStatus]: ...
    def get_mutable_context(self) -> pydrake.systems.framework.Context: ...
    def get_mutable_integrator(self) -> IntegratorBase: ...
    def get_num_discrete_updates(self) -> int: ...
    def get_num_publishes(self) -> int: ...
    def get_num_steps_taken(self) -> int: ...
    def get_num_unrestricted_updates(self) -> int: ...
    def get_system(self) -> pydrake.systems.framework.System: ...
    def get_target_realtime_rate(self) -> float: ...
    def has_context(self) -> bool: ...
    def reset_context(self, context: pydrake.systems.framework.Context | None) -> None: ...
    def set_monitor(self, monitor: collections.abc.Callable[[pydrake.systems.framework.Context], pydrake.systems.framework.EventStatus | None]) -> None: ...
    def set_target_realtime_rate(self, realtime_rate: float) -> None: ...

class SimulatorConfig:
    accuracy: Incomplete
    integration_scheme: Incomplete
    max_step_size: Incomplete
    start_time: float
    target_realtime_rate: Incomplete
    use_error_control: Incomplete
    def __init__(self, **kwargs) -> None: ...
    def __copy__(self) -> SimulatorConfig: ...
    def __deepcopy__(self, arg: dict) -> SimulatorConfig: ...
    @property
    def __fields__(self): ...

class SimulatorStatus:
    class ReturnReason(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] = ...
        kEventHandlerFailed: ClassVar[SimulatorStatus.ReturnReason] = ...
        kReachedBoundaryTime: ClassVar[SimulatorStatus.ReturnReason] = ...
        kReachedTerminationCondition: ClassVar[SimulatorStatus.ReturnReason] = ...
        __nb_enum__: ClassVar[PyCapsule] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def FormatMessage(self) -> str: ...
    def IsIdenticalStatus(self, other: SimulatorStatus) -> bool: ...
    def boundary_time(self) -> float: ...
    def message(self) -> str: ...
    def reason(self) -> SimulatorStatus.ReturnReason: ...
    def return_time(self) -> float: ...
    def succeeded(self) -> bool: ...
    def system(self) -> pydrake.systems.framework.SystemBase: ...

class Simulator_𝓣AutoDiffXd𝓤:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, system: pydrake.systems.framework.System_TAutoDiffXdU, context: object | None = ...) -> None: ...
    def AdvancePendingEvents(self) -> SimulatorStatus: ...
    def AdvanceTo(self, boundary_time: pydrake.autodiffutils.AutoDiffXd, interruptible: bool = ...) -> SimulatorStatus: ...
    def Initialize(self, params: InitializeParams = ...) -> SimulatorStatus: ...
    def ResetStatistics(self) -> None: ...
    def clear_monitor(self) -> None: ...
    def get_actual_realtime_rate(self) -> float: ...
    def get_context(self) -> pydrake.systems.framework.Context_TAutoDiffXdU: ...
    def get_integrator(self) -> IntegratorBase_TAutoDiffXdU: ...
    def get_monitor(self) -> collections.abc.Callable[[pydrake.systems.framework.Context_TAutoDiffXdU], pydrake.systems.framework.EventStatus]: ...
    def get_mutable_context(self) -> pydrake.systems.framework.Context_TAutoDiffXdU: ...
    def get_mutable_integrator(self) -> IntegratorBase_TAutoDiffXdU: ...
    def get_num_discrete_updates(self) -> int: ...
    def get_num_publishes(self) -> int: ...
    def get_num_steps_taken(self) -> int: ...
    def get_num_unrestricted_updates(self) -> int: ...
    def get_system(self) -> pydrake.systems.framework.System_TAutoDiffXdU: ...
    def get_target_realtime_rate(self) -> float: ...
    def has_context(self) -> bool: ...
    def reset_context(self, context: pydrake.systems.framework.Context_TAutoDiffXdU | None) -> None: ...
    def set_monitor(self, monitor: collections.abc.Callable[[pydrake.systems.framework.Context_TAutoDiffXdU], pydrake.systems.framework.EventStatus | None]) -> None: ...
    def set_target_realtime_rate(self, realtime_rate: float) -> None: ...

class _TemporaryName_N5drake7systems14IntegratorBaseINS_2ad8AutoDiffEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def GetStatisticsSummary(self) -> list[tuple[str, int | float]]: ...
    @overload
    def Initialize(self) -> None: ...
    @overload
    def Initialize(self) -> Any: ...
    @overload
    def Initialize(self) -> Any: ...
    def Reset(self) -> None: ...
    def ResetStatistics(self) -> None: ...
    def StartDenseIntegration(self) -> None: ...
    def StopDenseIntegration(self) -> pydrake.trajectories.PiecewisePolynomial_TAutoDiffXdU: ...
    def get_actual_initial_step_size_taken(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_context(self) -> pydrake.systems.framework.Context_TAutoDiffXdU: ...
    def get_dense_output(self) -> pydrake.trajectories.PiecewisePolynomial_TAutoDiffXdU: ...
    def get_fixed_step_mode(self) -> bool: ...
    def get_initial_step_size_target(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_largest_step_size_taken(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_maximum_step_size(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_mutable_context(self) -> pydrake.systems.framework.Context_TAutoDiffXdU: ...
    def get_num_derivative_evaluations(self) -> int: ...
    def get_num_step_shrinkages_from_error_control(self) -> int: ...
    def get_num_step_shrinkages_from_substep_failures(self) -> int: ...
    def get_num_steps_taken(self) -> int: ...
    def get_num_substep_failures(self) -> int: ...
    def get_requested_minimum_step_size(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_smallest_adapted_step_size_taken(self) -> pydrake.autodiffutils.AutoDiffXd: ...
    def get_target_accuracy(self) -> float: ...
    def get_throw_on_minimum_step_size_violation(self) -> bool: ...
    def request_initial_step_size_target(self, step_size: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def reset_context(self, context: pydrake.systems.framework.Context_TAutoDiffXdU | None = ...) -> None: ...
    def set_fixed_step_mode(self, flag: bool) -> None: ...
    @overload
    def set_maximum_step_size(self, max_step_size: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    @overload
    def set_maximum_step_size(self) -> Any: ...
    def set_requested_minimum_step_size(self, min_step_size: pydrake.autodiffutils.AutoDiffXd) -> None: ...
    def set_target_accuracy(self, accuracy: float) -> None: ...
    def set_throw_on_minimum_step_size_violation(self, throws: bool) -> None: ...

class _TemporaryName_N5drake7systems14IntegratorBaseINS_8symbolic10ExpressionEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def GetStatisticsSummary(self) -> list[tuple[str, int | float]]: ...
    @overload
    def Initialize(self) -> None: ...
    @overload
    def Initialize(self) -> Any: ...
    @overload
    def Initialize(self) -> Any: ...
    def Reset(self) -> None: ...
    def ResetStatistics(self) -> None: ...
    def StartDenseIntegration(self) -> None: ...
    def StopDenseIntegration(self) -> pydrake.trajectories.PiecewisePolynomial_TExpressionU: ...
    def get_actual_initial_step_size_taken(self) -> pydrake.symbolic.Expression: ...
    def get_context(self) -> pydrake.systems.framework.Context_TExpressionU: ...
    def get_dense_output(self) -> pydrake.trajectories.PiecewisePolynomial_TExpressionU: ...
    def get_fixed_step_mode(self) -> bool: ...
    def get_initial_step_size_target(self) -> pydrake.symbolic.Expression: ...
    def get_largest_step_size_taken(self) -> pydrake.symbolic.Expression: ...
    def get_maximum_step_size(self) -> pydrake.symbolic.Expression: ...
    def get_mutable_context(self) -> pydrake.systems.framework.Context_TExpressionU: ...
    def get_num_derivative_evaluations(self) -> int: ...
    def get_num_step_shrinkages_from_error_control(self) -> int: ...
    def get_num_step_shrinkages_from_substep_failures(self) -> int: ...
    def get_num_steps_taken(self) -> int: ...
    def get_num_substep_failures(self) -> int: ...
    def get_requested_minimum_step_size(self) -> pydrake.symbolic.Expression: ...
    def get_smallest_adapted_step_size_taken(self) -> pydrake.symbolic.Expression: ...
    def get_target_accuracy(self) -> float: ...
    def get_throw_on_minimum_step_size_violation(self) -> bool: ...
    def request_initial_step_size_target(self, step_size: pydrake.symbolic.Expression) -> None: ...
    def reset_context(self, context: pydrake.systems.framework.Context_TExpressionU | None = ...) -> None: ...
    def set_fixed_step_mode(self, flag: bool) -> None: ...
    @overload
    def set_maximum_step_size(self, max_step_size: pydrake.symbolic.Expression) -> None: ...
    @overload
    def set_maximum_step_size(self) -> Any: ...
    def set_requested_minimum_step_size(self, min_step_size: pydrake.symbolic.Expression) -> None: ...
    def set_target_accuracy(self, accuracy: float) -> None: ...
    def set_throw_on_minimum_step_size_violation(self, throws: bool) -> None: ...

class _TemporaryName_N5drake7systems21RungeKutta2IntegratorINS_2ad8AutoDiffEEE(IntegratorBase_TAutoDiffXdU):
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, system: pydrake.systems.framework.System_TAutoDiffXdU, max_step_size: pydrake.autodiffutils.AutoDiffXd, context: pydrake.systems.framework.Context_TAutoDiffXdU | None = ...) -> None: ...

class _TemporaryName_N5drake7systems21RungeKutta2IntegratorINS_8symbolic10ExpressionEEE(IntegratorBase_TExpressionU):
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, system: pydrake.systems.framework.System_TExpressionU, max_step_size: pydrake.symbolic.Expression, context: pydrake.systems.framework.Context_TExpressionU | None = ...) -> None: ...

class _TemporaryName_N5drake7systems21RungeKutta3IntegratorINS_2ad8AutoDiffEEE(IntegratorBase_TAutoDiffXdU):
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, system: pydrake.systems.framework.System_TAutoDiffXdU, context: pydrake.systems.framework.Context_TAutoDiffXdU | None = ...) -> None: ...

class _TemporaryName_N5drake7systems9SimulatorINS_2ad8AutoDiffEEE:
    _original_name: ClassVar[str] = ...
    _original_qualname: ClassVar[str] = ...
    def __init__(self, system: pydrake.systems.framework.System_TAutoDiffXdU, context: object | None = ...) -> None: ...
    def AdvancePendingEvents(self) -> SimulatorStatus: ...
    def AdvanceTo(self, boundary_time: pydrake.autodiffutils.AutoDiffXd, interruptible: bool = ...) -> SimulatorStatus: ...
    def Initialize(self, params: InitializeParams = ...) -> SimulatorStatus: ...
    def ResetStatistics(self) -> None: ...
    def clear_monitor(self) -> None: ...
    def get_actual_realtime_rate(self) -> float: ...
    def get_context(self) -> pydrake.systems.framework.Context_TAutoDiffXdU: ...
    def get_integrator(self) -> IntegratorBase_TAutoDiffXdU: ...
    def get_monitor(self) -> collections.abc.Callable[[pydrake.systems.framework.Context_TAutoDiffXdU], pydrake.systems.framework.EventStatus]: ...
    def get_mutable_context(self) -> pydrake.systems.framework.Context_TAutoDiffXdU: ...
    def get_mutable_integrator(self) -> IntegratorBase_TAutoDiffXdU: ...
    def get_num_discrete_updates(self) -> int: ...
    def get_num_publishes(self) -> int: ...
    def get_num_steps_taken(self) -> int: ...
    def get_num_unrestricted_updates(self) -> int: ...
    def get_system(self) -> pydrake.systems.framework.System_TAutoDiffXdU: ...
    def get_target_realtime_rate(self) -> float: ...
    def has_context(self) -> bool: ...
    def reset_context(self, context: pydrake.systems.framework.Context_TAutoDiffXdU | None) -> None: ...
    def set_monitor(self, monitor: collections.abc.Callable[[pydrake.systems.framework.Context_TAutoDiffXdU], pydrake.systems.framework.EventStatus | None]) -> None: ...
    def set_target_realtime_rate(self, realtime_rate: float) -> None: ...
