def sum_as_string(a: int, b: int) -> str: ...
class C2048(object):
    @property
    def grid(self) -> list[Tile]: ...
    @property
    def moves(self) -> list[Move]: ...
    @property
    def spawns(self) -> list[(int, int)]: ...
    @property
    def has_moved(self) -> bool: ...
    def clone_move(self, mv) -> C2048: ...
    def move(self, mv): ...
    def down(self): ...
    def has_space(self) -> bool: ...
    def highest(self) -> int: ...
    def is_lose(self) -> bool: ...
    def is_win(self) -> bool: ...
    def left(self): ...
    def reset(self): ...
    def right(self): ...
    def score(self) -> int: ...
    def set_tile(self, pos, value): ...
    def spawn_tile(self, chance): ...
    def up(self): ...
    def lowest_energy_move(self) -> C2048: ...
    def full_energy_at(self, i) -> FullEnergy: ...
    def energy(self) -> int: ...
    def __new__(*args, **kwargs): ...
class Move(object):
    def __eq__(self, value) -> bool: ...
    def __ge__(self, value) -> bool: ...
    def __gt__(self, value) -> bool: ...
    def __int__(self) -> int: ...
    def __le__(self, value) -> bool: ...
    def __lt__(self, value) -> bool: ...
    def __ne__(self, value) -> bool: ...
    def __repr__(self) -> str: ...
    def random() -> Move: ...
    Down = Move.Down
    Left = Move.Left
    Right = Move.Right
    Up = Move.Up
    __hash__ = None
class Tile(object):
    @property
    def exp(self) -> int: ...
    @property
    def is_merged(self) -> int: ...
    def to_number(self) -> int: ...
    def __new__(exp: int, *args, **kwargs): ...
class Energy(object):
    @property
    def epsilon(self) -> int: ...
    @property
    def phi(self) -> int: ...
    @property
    def xi(self) -> int: ...
    def sum(self) -> int: ...
class FullEnergy(object):
    @property
    def epsilon(self) -> int: ...
    @property
    def phi_down(self) -> None|int: ...
    @property
    def phi_left(self) -> None|int: ...
    @property
    def phi_right(self) -> None|int: ...
    @property
    def phi_up(self) -> None|int: ...
    @property
    def xi_horizontal(self) -> None|int: ...
    @property
    def xi_vertical(self) -> None|int: ...
    def reduce(self) -> Energy: ...