"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
from builtins import (
    bool,
    bytes,
    int,
)

from google.protobuf.descriptor import (
    Descriptor,
    FileDescriptor,
)

from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer,
    RepeatedScalarFieldContainer,
)

from google.protobuf.message import (
    Message,
)

from typing import (
    Iterable,
    Optional,
    Text,
)

from typing_extensions import (
    Literal,
)


DESCRIPTOR: FileDescriptor

class CPU(Message):
    """tencent/im/oidb/cmd0x769/Oidb_0x769.java

    """
    DESCRIPTOR: Descriptor
    MODEL_FIELD_NUMBER: int
    CORES_FIELD_NUMBER: int
    FREQUENCY_FIELD_NUMBER: int
    model: Text
    cores: int
    frequency: int
    def __init__(self,
        *,
        model: Optional[Text] = ...,
        cores: Optional[int] = ...,
        frequency: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["cores",b"cores","frequency",b"frequency","model",b"model"]) -> bool: ...
    def ClearField(self, field_name: Literal["cores",b"cores","frequency",b"frequency","model",b"model"]) -> None: ...

class Camera(Message):
    DESCRIPTOR: Descriptor
    PRIMARY_FIELD_NUMBER: int
    SECONDARY_FIELD_NUMBER: int
    FLASH_FIELD_NUMBER: int
    primary: int
    secondary: int
    flash: bool
    def __init__(self,
        *,
        primary: Optional[int] = ...,
        secondary: Optional[int] = ...,
        flash: Optional[bool] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["flash",b"flash","primary",b"primary","secondary",b"secondary"]) -> bool: ...
    def ClearField(self, field_name: Literal["flash",b"flash","primary",b"primary","secondary",b"secondary"]) -> None: ...

class Config(Message):
    DESCRIPTOR: Descriptor
    TYPE_FIELD_NUMBER: int
    VERSION_FIELD_NUMBER: int
    CONTENT_LIST_FIELD_NUMBER: int
    DEBUG_MSG_FIELD_NUMBER: int
    MSG_CONTENT_LIST_FIELD_NUMBER: int
    type: int
    version: int
    @property
    def content_list(self) -> RepeatedScalarFieldContainer[Text]: ...
    debug_msg: Text
    @property
    def msg_content_list(self) -> RepeatedCompositeFieldContainer[Content]: ...
    def __init__(self,
        *,
        type: Optional[int] = ...,
        version: Optional[int] = ...,
        content_list: Optional[Iterable[Text]] = ...,
        debug_msg: Optional[Text] = ...,
        msg_content_list: Optional[Iterable[Content]] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["debug_msg",b"debug_msg","type",b"type","version",b"version"]) -> bool: ...
    def ClearField(self, field_name: Literal["content_list",b"content_list","debug_msg",b"debug_msg","msg_content_list",b"msg_content_list","type",b"type","version",b"version"]) -> None: ...

class ConfigSeq(Message):
    DESCRIPTOR: Descriptor
    TYPE_FIELD_NUMBER: int
    VERSION_FIELD_NUMBER: int
    type: int
    version: int
    def __init__(self,
        *,
        type: Optional[int] = ...,
        version: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["type",b"type","version",b"version"]) -> bool: ...
    def ClearField(self, field_name: Literal["type",b"type","version",b"version"]) -> None: ...

class Content(Message):
    DESCRIPTOR: Descriptor
    TASK_ID_FIELD_NUMBER: int
    COMPRESS_FIELD_NUMBER: int
    CONTENT_FIELD_NUMBER: int
    task_id: int
    compress: int
    content: bytes
    def __init__(self,
        *,
        task_id: Optional[int] = ...,
        compress: Optional[int] = ...,
        content: Optional[bytes] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["compress",b"compress","content",b"content","task_id",b"task_id"]) -> bool: ...
    def ClearField(self, field_name: Literal["compress",b"compress","content",b"content","task_id",b"task_id"]) -> None: ...

class DeviceInfo(Message):
    DESCRIPTOR: Descriptor
    BRAND_FIELD_NUMBER: int
    MODEL_FIELD_NUMBER: int
    OS_FIELD_NUMBER: int
    CPU_FIELD_NUMBER: int
    MEMORY_FIELD_NUMBER: int
    STORAGE_FIELD_NUMBER: int
    SCREEN_FIELD_NUMBER: int
    CAMERA_FIELD_NUMBER: int
    brand: Text
    model: Text
    @property
    def os(self) -> OS: ...
    @property
    def cpu(self) -> CPU: ...
    @property
    def memory(self) -> Memory: ...
    @property
    def storage(self) -> Storage: ...
    @property
    def screen(self) -> Screen: ...
    @property
    def camera(self) -> Camera: ...
    def __init__(self,
        *,
        brand: Optional[Text] = ...,
        model: Optional[Text] = ...,
        os: Optional[OS] = ...,
        cpu: Optional[CPU] = ...,
        memory: Optional[Memory] = ...,
        storage: Optional[Storage] = ...,
        screen: Optional[Screen] = ...,
        camera: Optional[Camera] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["brand",b"brand","camera",b"camera","cpu",b"cpu","memory",b"memory","model",b"model","os",b"os","screen",b"screen","storage",b"storage"]) -> bool: ...
    def ClearField(self, field_name: Literal["brand",b"brand","camera",b"camera","cpu",b"cpu","memory",b"memory","model",b"model","os",b"os","screen",b"screen","storage",b"storage"]) -> None: ...

class Memory(Message):
    DESCRIPTOR: Descriptor
    TOTAL_FIELD_NUMBER: int
    PROCESS_FIELD_NUMBER: int
    total: int
    process: int
    def __init__(self,
        *,
        total: Optional[int] = ...,
        process: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["process",b"process","total",b"total"]) -> bool: ...
    def ClearField(self, field_name: Literal["process",b"process","total",b"total"]) -> None: ...

class OS(Message):
    DESCRIPTOR: Descriptor
    TYPE_FIELD_NUMBER: int
    VERSION_FIELD_NUMBER: int
    SDK_FIELD_NUMBER: int
    KERNEL_FIELD_NUMBER: int
    ROM_FIELD_NUMBER: int
    type: int
    version: Text
    sdk: Text
    kernel: Text
    rom: Text
    def __init__(self,
        *,
        type: Optional[int] = ...,
        version: Optional[Text] = ...,
        sdk: Optional[Text] = ...,
        kernel: Optional[Text] = ...,
        rom: Optional[Text] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["kernel",b"kernel","rom",b"rom","sdk",b"sdk","type",b"type","version",b"version"]) -> bool: ...
    def ClearField(self, field_name: Literal["kernel",b"kernel","rom",b"rom","sdk",b"sdk","type",b"type","version",b"version"]) -> None: ...

class QueryUinPackageUsageReq(Message):
    DESCRIPTOR: Descriptor
    TYPE_FIELD_NUMBER: int
    UIN_FILE_SIZE_FIELD_NUMBER: int
    type: int
    uin_file_size: int
    def __init__(self,
        *,
        type: Optional[int] = ...,
        uin_file_size: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["type",b"type","uin_file_size",b"uin_file_size"]) -> bool: ...
    def ClearField(self, field_name: Literal["type",b"type","uin_file_size",b"uin_file_size"]) -> None: ...

class QueryUinPackageUsageRsp(Message):
    DESCRIPTOR: Descriptor
    STATUS_FIELD_NUMBER: int
    LEFT_UIN_NUM_FIELD_NUMBER: int
    MAX_UIN_NUM_FIELD_NUMBER: int
    PROPORTION_FIELD_NUMBER: int
    UIN_PACKAGE_USED_LIST_FIELD_NUMBER: int
    status: int
    left_uin_num: int
    max_uin_num: int
    proportion: int
    @property
    def uin_package_used_list(self) -> RepeatedCompositeFieldContainer[UinPackageUsedInfo]: ...
    def __init__(self,
        *,
        status: Optional[int] = ...,
        left_uin_num: Optional[int] = ...,
        max_uin_num: Optional[int] = ...,
        proportion: Optional[int] = ...,
        uin_package_used_list: Optional[Iterable[UinPackageUsedInfo]] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["left_uin_num",b"left_uin_num","max_uin_num",b"max_uin_num","proportion",b"proportion","status",b"status"]) -> bool: ...
    def ClearField(self, field_name: Literal["left_uin_num",b"left_uin_num","max_uin_num",b"max_uin_num","proportion",b"proportion","status",b"status","uin_package_used_list",b"uin_package_used_list"]) -> None: ...

class ReqBody(Message):
    DESCRIPTOR: Descriptor
    CONFIG_LIST_FIELD_NUMBER: int
    DEVICE_INFO_FIELD_NUMBER: int
    INFO_FIELD_NUMBER: int
    PROVINCE_FIELD_NUMBER: int
    CITY_FIELD_NUMBER: int
    REQ_DEBUG_MSG_FIELD_NUMBER: int
    QUERY_UIN_PACKAGE_USAGE_REQ_FIELD_NUMBER: int
    @property
    def config_list(self) -> RepeatedCompositeFieldContainer[ConfigSeq]: ...
    @property
    def device_info(self) -> DeviceInfo: ...
    info: Text
    province: Text
    city: Text
    req_debug_msg: int
    @property
    def query_uin_package_usage_req(self) -> QueryUinPackageUsageReq: ...
    def __init__(self,
        *,
        config_list: Optional[Iterable[ConfigSeq]] = ...,
        device_info: Optional[DeviceInfo] = ...,
        info: Optional[Text] = ...,
        province: Optional[Text] = ...,
        city: Optional[Text] = ...,
        req_debug_msg: Optional[int] = ...,
        query_uin_package_usage_req: Optional[QueryUinPackageUsageReq] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["city",b"city","device_info",b"device_info","info",b"info","province",b"province","query_uin_package_usage_req",b"query_uin_package_usage_req","req_debug_msg",b"req_debug_msg"]) -> bool: ...
    def ClearField(self, field_name: Literal["city",b"city","config_list",b"config_list","device_info",b"device_info","info",b"info","province",b"province","query_uin_package_usage_req",b"query_uin_package_usage_req","req_debug_msg",b"req_debug_msg"]) -> None: ...

class RspBody(Message):
    DESCRIPTOR: Descriptor
    RESULT_FIELD_NUMBER: int
    CONFIG_LIST_FIELD_NUMBER: int
    QUERY_UIN_PACKAGE_USAGE_RSP_FIELD_NUMBER: int
    result: int
    @property
    def config_list(self) -> RepeatedCompositeFieldContainer[Config]: ...
    @property
    def query_uin_package_usage_rsp(self) -> QueryUinPackageUsageRsp: ...
    def __init__(self,
        *,
        result: Optional[int] = ...,
        config_list: Optional[Iterable[Config]] = ...,
        query_uin_package_usage_rsp: Optional[QueryUinPackageUsageRsp] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["query_uin_package_usage_rsp",b"query_uin_package_usage_rsp","result",b"result"]) -> bool: ...
    def ClearField(self, field_name: Literal["config_list",b"config_list","query_uin_package_usage_rsp",b"query_uin_package_usage_rsp","result",b"result"]) -> None: ...

class Screen(Message):
    DESCRIPTOR: Descriptor
    MODEL_FIELD_NUMBER: int
    WIDTH_FIELD_NUMBER: int
    HEIGHT_FIELD_NUMBER: int
    DPI_FIELD_NUMBER: int
    MULTI_TOUCH_FIELD_NUMBER: int
    model: Text
    width: int
    height: int
    dpi: int
    multi_touch: bool
    def __init__(self,
        *,
        model: Optional[Text] = ...,
        width: Optional[int] = ...,
        height: Optional[int] = ...,
        dpi: Optional[int] = ...,
        multi_touch: Optional[bool] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["dpi",b"dpi","height",b"height","model",b"model","multi_touch",b"multi_touch","width",b"width"]) -> bool: ...
    def ClearField(self, field_name: Literal["dpi",b"dpi","height",b"height","model",b"model","multi_touch",b"multi_touch","width",b"width"]) -> None: ...

class Storage(Message):
    DESCRIPTOR: Descriptor
    BUILTIN_FIELD_NUMBER: int
    EXTERNAL_FIELD_NUMBER: int
    builtin: int
    external: int
    def __init__(self,
        *,
        builtin: Optional[int] = ...,
        external: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["builtin",b"builtin","external",b"external"]) -> bool: ...
    def ClearField(self, field_name: Literal["builtin",b"builtin","external",b"external"]) -> None: ...

class UinPackageUsedInfo(Message):
    DESCRIPTOR: Descriptor
    RULE_ID_FIELD_NUMBER: int
    AUTHOR_FIELD_NUMBER: int
    URL_FIELD_NUMBER: int
    UIN_NUM_FIELD_NUMBER: int
    rule_id: int
    author: Text
    url: Text
    uin_num: int
    def __init__(self,
        *,
        rule_id: Optional[int] = ...,
        author: Optional[Text] = ...,
        url: Optional[Text] = ...,
        uin_num: Optional[int] = ...,
        ) -> None: ...
    def HasField(self, field_name: Literal["author",b"author","rule_id",b"rule_id","uin_num",b"uin_num","url",b"url"]) -> bool: ...
    def ClearField(self, field_name: Literal["author",b"author","rule_id",b"rule_id","uin_num",b"uin_num","url",b"url"]) -> None: ...
