def main() -> None: ...

class EventDrivenGas:
    def __init__(self) -> None: ...
    @classmethod
    def new_uniform_v(
        cls, num_particles: int, speed: float, radius: float
    ) -> EventDrivenGas: ...
    @classmethod
    def new_uniform_v_different_m(
        cls, num_particles: int, speed: float, radius: float, xi=1.0
    ) -> EventDrivenGas: ...
    @classmethod
    def new_big_and_small(
        cls, num_small: int, speed: float, radius: float, xi: float
    ) -> EventDrivenGas: ...
    @classmethod
    def new_for_test_4(cls, y: float) -> EventDrivenGas: ...
    def get_angle_off_x_axis(self, particle_idx: int): ...
    def main(self) -> None: ...
    def step(self): ...
    def step_many(self, num_steps: int): ...
    def step_until_energy(self, target_energy: float): ...
    def get_positions(self) -> tuple[list[float], list[float]]: ...
    def get_sizes(self) -> list[float]: ...
    def get_speeds(self) -> list[float]: ...
    def get_masses(self) -> list[float]: ...
    def get_total_energy(self) -> float: ...
