"""
类型存根文件 - MessageAPI

此文件由 dev/tools/generate_sync_stubs.py 自动生成。
请勿手动编辑。
"""

from typing import List, Optional, Union, Literal
from ncatbot.core.api.client import IAPIClient
from ncatbot.core.service import ServiceManager

# 前向声明
class Forward: ...
class GroupMessageEvent: ...
class Image: ...
class MessageArray: ...
class MessageEvent: ...
class PrivateMessageEvent: ...
class Record: ...

class MessageAPI:
    """
    MessageAPI 类型存根

    包含异步方法和动态生成的同步方法（*_sync）。
    """

    # 属性声明
    _client: IAPIClient
    _service_manager: Optional[ServiceManager]

    def __init__(
        self, client: IAPIClient, service_manager: Optional[ServiceManager] = ...
    ) -> None: ...
    async def delete_msg(self, message_id: Union[str, int]) -> None: ...
    def delete_msg_sync(self, message_id: Union[str, int]) -> None: ...
    async def fetch_emoji_like(
        self,
        message_id: Union[str, int],
        emoji_id: Union[str, int],
        emoji_type: Union[str, int],
    ) -> dict: ...
    def fetch_emoji_like_sync(
        self,
        message_id: Union[str, int],
        emoji_id: Union[str, int],
        emoji_type: Union[str, int],
    ) -> dict: ...
    async def forward_group_single_msg(
        self, group_id: Union[str, int], message_id: Union[str, int]
    ) -> None: ...
    def forward_group_single_msg_sync(
        self, group_id: Union[str, int], message_id: Union[str, int]
    ) -> None: ...
    async def forward_private_single_msg(
        self, user_id: Union[str, int], message_id: Union[str, int]
    ) -> None: ...
    def forward_private_single_msg_sync(
        self, user_id: Union[str, int], message_id: Union[str, int]
    ) -> None: ...
    async def friend_poke(self, user_id: Union[str, int]) -> None: ...
    def friend_poke_sync(self, user_id: Union[str, int]) -> None: ...
    async def get_forward_msg(self, message_id: Union[str, int]) -> "Forward": ...
    def get_forward_msg_sync(self, message_id: Union[str, int]) -> "Forward": ...
    async def get_friend_msg_history(
        self,
        user_id: Union[str, int],
        message_seq: Union[str, int],
        count: int = ...,
        reverse_order: bool = ...,
    ) -> List["PrivateMessageEvent"]: ...
    def get_friend_msg_history_sync(
        self,
        user_id: Union[str, int],
        message_seq: Union[str, int],
        count: int = ...,
        reverse_order: bool = ...,
    ) -> List["PrivateMessageEvent"]: ...
    async def get_group_list(self) -> List[str]: ...
    def get_group_list_sync(self) -> List[str]: ...
    async def get_group_msg_history(
        self,
        group_id: Union[str, int],
        message_seq: Optional[Union[str, int]] = ...,
        count: int = ...,
        reverse_order: bool = ...,
    ) -> List["GroupMessageEvent"]: ...
    def get_group_msg_history_sync(
        self,
        group_id: Union[str, int],
        message_seq: Optional[Union[str, int]] = ...,
        count: int = ...,
        reverse_order: bool = ...,
    ) -> List["GroupMessageEvent"]: ...
    async def get_image(
        self, file: Optional[str] = ..., file_id: Optional[str] = ...
    ) -> "Image": ...
    def get_image_sync(
        self, file: Optional[str] = ..., file_id: Optional[str] = ...
    ) -> "Image": ...
    async def get_login_info(self): ...
    def get_login_info_sync(self): ...
    async def get_msg(self, message_id: Union[str, int]) -> "MessageEvent": ...
    def get_msg_sync(self, message_id: Union[str, int]) -> "MessageEvent": ...
    async def get_record(
        self,
        file: Optional[str] = ...,
        file_id: Optional[str] = ...,
        out_format: Literal[
            "mp3", "amr", "wma", "m4a", "ogg", "wav", "flac", "spx"
        ] = ...,
    ) -> "Record": ...
    def get_record_sync(
        self,
        file: Optional[str] = ...,
        file_id: Optional[str] = ...,
        out_format: Literal[
            "mp3", "amr", "wma", "m4a", "ogg", "wav", "flac", "spx"
        ] = ...,
    ) -> "Record": ...
    async def group_poke(
        self, group_id: Union[str, int], user_id: Union[str, int]
    ) -> None: ...
    def group_poke_sync(
        self, group_id: Union[str, int], user_id: Union[str, int]
    ) -> None: ...
    async def post_all_group_array_msg(self, msg: "MessageArray"): ...
    def post_all_group_array_msg_sync(self, msg: "MessageArray"): ...
    async def post_forward_msg(
        self,
        group_id: Optional[Union[str, int]] = ...,
        user_id: Optional[Union[str, int]] = ...,
        msg: Optional["Forward"] = ...,
    ) -> str: ...
    def post_forward_msg_sync(
        self,
        group_id: Optional[Union[str, int]] = ...,
        user_id: Optional[Union[str, int]] = ...,
        msg: Optional["Forward"] = ...,
    ) -> str: ...
    async def post_group_array_msg(
        self, group_id: Union[str, int], msg: "MessageArray"
    ) -> str: ...
    def post_group_array_msg_sync(
        self, group_id: Union[str, int], msg: "MessageArray"
    ) -> str: ...
    async def post_group_forward_msg(
        self, group_id: Union[str, int], forward: "Forward"
    ) -> str: ...
    def post_group_forward_msg_sync(
        self, group_id: Union[str, int], forward: "Forward"
    ) -> str: ...
    async def post_group_msg(
        self,
        group_id: Union[str, int],
        text: Optional[str] = ...,
        at: Optional[Union[str, int]] = ...,
        reply: Optional[Union[str, int]] = ...,
        image: Optional[str] = ...,
        rtf: Optional["MessageArray"] = ...,
    ) -> str: ...
    def post_group_msg_sync(
        self,
        group_id: Union[str, int],
        text: Optional[str] = ...,
        at: Optional[Union[str, int]] = ...,
        reply: Optional[Union[str, int]] = ...,
        image: Optional[str] = ...,
        rtf: Optional["MessageArray"] = ...,
    ) -> str: ...
    async def post_private_array_msg(
        self, user_id: Union[str, int], msg: "MessageArray"
    ) -> str: ...
    def post_private_array_msg_sync(
        self, user_id: Union[str, int], msg: "MessageArray"
    ) -> str: ...
    async def post_private_forward_msg(
        self, user_id: Union[str, int], forward: "Forward"
    ) -> str: ...
    def post_private_forward_msg_sync(
        self, user_id: Union[str, int], forward: "Forward"
    ) -> str: ...
    async def post_private_msg(
        self,
        user_id: Union[str, int],
        text: Optional[str] = ...,
        reply: Optional[Union[str, int]] = ...,
        image: Optional[str] = ...,
        rtf: Optional["MessageArray"] = ...,
    ) -> str: ...
    def post_private_msg_sync(
        self,
        user_id: Union[str, int],
        text: Optional[str] = ...,
        reply: Optional[Union[str, int]] = ...,
        image: Optional[str] = ...,
        rtf: Optional["MessageArray"] = ...,
    ) -> str: ...
    async def send_forward_msg(
        self,
        group_id: Optional[Union[str, int]] = ...,
        user_id: Optional[Union[str, int]] = ...,
        messages: Optional[List["GroupMessageEvent"]] = ...,
        news: Optional[List[str]] = ...,
        prompt: Optional[str] = ...,
        summary: Optional[str] = ...,
        source: Optional[str] = ...,
    ) -> str: ...
    def send_forward_msg_sync(
        self,
        group_id: Optional[Union[str, int]] = ...,
        user_id: Optional[Union[str, int]] = ...,
        messages: Optional[List["GroupMessageEvent"]] = ...,
        news: Optional[List[str]] = ...,
        prompt: Optional[str] = ...,
        summary: Optional[str] = ...,
        source: Optional[str] = ...,
    ) -> str: ...
    async def send_group_custom_music(
        self,
        group_id: Union[str, int],
        url: str,
        title: str,
        image: str,
        audio: Optional[str] = ...,
        content: Optional[str] = ...,
    ) -> str: ...
    def send_group_custom_music_sync(
        self,
        group_id: Union[str, int],
        url: str,
        title: str,
        image: str,
        audio: Optional[str] = ...,
        content: Optional[str] = ...,
    ) -> str: ...
    async def send_group_dice(self, group_id: Union[str, int], value: int = ...): ...
    def send_group_dice_sync(self, group_id: Union[str, int], value: int = ...): ...
    async def send_group_file(
        self, group_id: Union[str, int], file: str, name: Optional[str] = ...
    ) -> str: ...
    def send_group_file_sync(
        self, group_id: Union[str, int], file: str, name: Optional[str] = ...
    ) -> str: ...
    async def send_group_forward_msg(
        self,
        group_id: Union[str, int],
        messages: List[dict],
        news: List[str],
        prompt: str,
        summary: str,
        source: str,
    ) -> str: ...
    def send_group_forward_msg_sync(
        self,
        group_id: Union[str, int],
        messages: List[dict],
        news: List[str],
        prompt: str,
        summary: str,
        source: str,
    ) -> str: ...
    async def send_group_forward_msg_by_id(
        self, group_id: Union[str, int], messages: List[Union[str, int]]
    ) -> str: ...
    def send_group_forward_msg_by_id_sync(
        self, group_id: Union[str, int], messages: List[Union[str, int]]
    ) -> str: ...
    async def send_group_image(self, group_id: Union[str, int], image: str) -> str: ...
    def send_group_image_sync(self, group_id: Union[str, int], image: str) -> str: ...
    async def send_group_msg(
        self, group_id: Union[str, int], message: List[dict]
    ) -> str: ...
    def send_group_msg_sync(
        self, group_id: Union[str, int], message: List[dict]
    ) -> str: ...
    async def send_group_music(
        self, group_id: Union[str, int], type: Literal["qq", "163"], id: Union[int, str]
    ) -> str: ...
    def send_group_music_sync(
        self, group_id: Union[str, int], type: Literal["qq", "163"], id: Union[int, str]
    ) -> str: ...
    async def send_group_plain_text(
        self, group_id: Union[str, int], text: str
    ) -> str: ...
    def send_group_plain_text_sync(
        self, group_id: Union[str, int], text: str
    ) -> str: ...
    async def send_group_record(self, group_id: Union[str, int], file: str) -> str: ...
    def send_group_record_sync(self, group_id: Union[str, int], file: str) -> str: ...
    async def send_group_rps(self, group_id: Union[str, int], value: int = ...): ...
    def send_group_rps_sync(self, group_id: Union[str, int], value: int = ...): ...
    async def send_group_text(self, group_id: Union[str, int], text: str) -> str: ...
    def send_group_text_sync(self, group_id: Union[str, int], text: str) -> str: ...
    async def send_poke(
        self, user_id: Union[str, int], group_id: Optional[Union[str, int]] = ...
    ) -> None: ...
    def send_poke_sync(
        self, user_id: Union[str, int], group_id: Optional[Union[str, int]] = ...
    ) -> None: ...
    async def send_private_custom_music(
        self,
        user_id: Union[str, int],
        url: str,
        title: str,
        image: str,
        audio: Optional[str] = ...,
        content: Optional[str] = ...,
    ) -> str: ...
    def send_private_custom_music_sync(
        self,
        user_id: Union[str, int],
        url: str,
        title: str,
        image: str,
        audio: Optional[str] = ...,
        content: Optional[str] = ...,
    ) -> str: ...
    async def send_private_dice(
        self, user_id: Union[str, int], value: int = ...
    ) -> str: ...
    def send_private_dice_sync(
        self, user_id: Union[str, int], value: int = ...
    ) -> str: ...
    async def send_private_file(
        self, user_id: Union[str, int], file: str, name: Optional[str] = ...
    ) -> str: ...
    def send_private_file_sync(
        self, user_id: Union[str, int], file: str, name: Optional[str] = ...
    ) -> str: ...
    async def send_private_forward_msg(
        self,
        user_id: Union[str, int],
        messages: List[dict],
        news: List[str],
        prompt: str,
        summary: str,
        source: str,
    ) -> str: ...
    def send_private_forward_msg_sync(
        self,
        user_id: Union[str, int],
        messages: List[dict],
        news: List[str],
        prompt: str,
        summary: str,
        source: str,
    ) -> str: ...
    async def send_private_forward_msg_by_id(
        self, user_id: Union[str, int], messages: List[Union[str, int]]
    ) -> str: ...
    def send_private_forward_msg_by_id_sync(
        self, user_id: Union[str, int], messages: List[Union[str, int]]
    ) -> str: ...
    async def send_private_image(self, user_id: Union[str, int], image: str) -> str: ...
    def send_private_image_sync(self, user_id: Union[str, int], image: str) -> str: ...
    async def send_private_msg(
        self, user_id: Union[str, int], message: List[dict]
    ) -> str: ...
    def send_private_msg_sync(
        self, user_id: Union[str, int], message: List[dict]
    ) -> str: ...
    async def send_private_music(
        self, user_id: Union[str, int], type: Literal["qq", "163"], id: Union[int, str]
    ) -> str: ...
    def send_private_music_sync(
        self, user_id: Union[str, int], type: Literal["qq", "163"], id: Union[int, str]
    ) -> str: ...
    async def send_private_plain_text(
        self, user_id: Union[str, int], text: str
    ) -> str: ...
    def send_private_plain_text_sync(
        self, user_id: Union[str, int], text: str
    ) -> str: ...
    async def send_private_record(self, user_id: Union[str, int], file: str) -> str: ...
    def send_private_record_sync(self, user_id: Union[str, int], file: str) -> str: ...
    async def send_private_rps(
        self, user_id: Union[str, int], value: int = ...
    ) -> str: ...
    def send_private_rps_sync(
        self, user_id: Union[str, int], value: int = ...
    ) -> str: ...
    async def send_private_text(self, user_id: Union[str, int], text: str) -> str: ...
    def send_private_text_sync(self, user_id: Union[str, int], text: str) -> str: ...
    async def set_msg_emoji_like(
        self, message_id: Union[str, int], emoji_id: Union[str, int], set: bool = ...
    ) -> None: ...
    def set_msg_emoji_like_sync(
        self, message_id: Union[str, int], emoji_id: Union[str, int], set: bool = ...
    ) -> None: ...
