from ..error import VLPSequenceLenError as VLPSequenceLenError, VLPTypeError as VLPTypeError, VLPValueError as VLPValueError
from _typeshed import Incomplete
from numbers import Number
from typing import Callable, Sequence, Union

class Room:
    wall_type: Incomplete
    wall_roughness: int
    def __init__(self, length: Number, width: Number, height: Number, tp_gap: Union[Number, Sequence] = ..., tp_height: Union[Number, Sequence] = ..., reflect_wall: Sequence = ..., wall_gap: Union[Number, Sequence] = ..., rho: Union[Number, Sequence] = ..., wall_type: str = ..., origin: tuple = ..., *args, **kwargs) -> None: ...
    def get_tp_grid(self): ...
    def get_tp_pos(self, fmt: str = ...): ...
    def get_reflect_wall_pos(self, gap, wall): ...
    def regular_wall_angle(self, wall, shape): ...
    def irregular_wall_angle(self, shape): ...
    def rough_wall_angle(self, wall, shape): ...
    def register_user_wall_angle_func(self, func: Callable[[int, int], Sequence] = ...): ...
    def get_reflect_wall_angle(self, wall, shape, wall_type): ...
    def get_reflect_wall_args(self) -> list: ...
    @property
    def length(self): ...
    @property
    def width(self): ...
    @property
    def height(self): ...
    @property
    def size(self) -> tuple: ...
    @property
    def origin(self) -> tuple: ...
    @property
    def tp_length(self): ...
    @property
    def tp_width(self): ...
    @property
    def tp_height(self): ...
    @property
    def tp_gap(self): ...
    @property
    def reflect_wall(self) -> list: ...
    @property
    def rho(self): ...
    @property
    def Aw(self): ...
    @property
    def rp_length(self): ...
    @property
    def rp_width(self): ...
    @property
    def rp_height(self): ...
    @property
    def wall_gap(self): ...
    @property
    def wall_args_path(self): ...
