{notice}

from __future__ import annotations

from io import BytesIO

from pyrogram.raw.core.primitives import Int, Long, Int128, Int256, Bool, Bytes, String, Double, Vector
from pyrogram.raw.core import TLObject
from pyrogram import raw
from typing import Any

{warning}
                                               
class {name}(TLObject):  # type: ignore
    """{docstring}
    """

    ID = {id}
    QUALNAME = "{qualname}"

    def __init__(self{arguments}) -> None:
        {fields}

    @staticmethod
    def read(b: BytesIO, *args: Any) -> "{name}":
        {read_types}
        return {name}({return_arguments})

    def write(self, *args) -> bytes:
        b = BytesIO()
        b.write(Int(self.ID, False))

        {write_types}
        return b.getvalue()