# This file is auto-generated by scripts/generate_client_pyi.py.
# Do not edit this file directly.
# Generated at: 2026-02-19T09:14:04Z
# Source file: nonebot/adapters/discord/api/handle.py
# Source SHA256: c01764b649c0da9ded0da2f68cb320f1d13c3c443a7ff8a0ee613b762366349e

from datetime import datetime
from typing import Any, Literal

from .model import (
    SKU,
    ActivityInstance,
    AllowedMention,
    AnswerVoters,
    Application,
    ApplicationCommand,
    ApplicationCommandBulkOverwriteParams,
    ApplicationCommandOption,
    ApplicationCommandPermissions,
    ApplicationEmojis,
    ApplicationIntegrationTypeConfiguration,
    ApplicationRoleConnection,
    ApplicationRoleConnectionMetadata,
    ArchivedThreadsResponse,
    AttachmentSend,
    AuditLog,
    AuthorizationResponse,
    AutoModerationAction,
    AutoModerationRule,
    Ban,
    BulkBan,
    Channel,
    Component,
    Connection,
    CurrentUserGuild,
    DefaultReaction,
    DirectComponent,
    Embed,
    Emoji,
    Entitlement,
    File,
    FollowedChannel,
    ForumTagRequest,
    Gateway,
    GatewayBot,
    Guild,
    GuildApplicationCommandPermissions,
    GuildMember,
    GuildOnboarding,
    GuildPreview,
    GuildScheduledEvent,
    GuildScheduledEventEntityMetadata,
    GuildScheduledEventUser,
    GuildTemplate,
    GuildVanityURL,
    GuildWidget,
    GuildWidgetSettings,
    InstallParams,
    Integration,
    InteractionResponse,
    Invite,
    ListActiveGuildThreadsResponse,
    MessageGet,
    MessageReference,
    ModifyGuildChannelPositionParams,
    ModifyGuildRolePositionParams,
    OnboardingPrompt,
    Overwrite,
    PartialOverwrite,
    PollRequest,
    RecurrenceRule,
    Role,
    RoleColors,
    Snowflake,
    SnowflakeType,
    StageInstance,
    Sticker,
    StickerPack,
    StickerPacksResponse,
    Subscription,
    ThreadMember,
    TriggerMetadata,
    User,
    VoiceRegion,
    VoiceState,
    Webhook,
    WelcomeScreen,
    WelcomeScreenChannel,
)
from .types import (
    ApplicationCommandType,
    ApplicationFlag,
    ApplicationIntegrationType,
    AuditLogEventType,
    AutoModerationRuleEventType,
    ChannelFlags,
    ChannelType,
    DefaultMessageNotificationLevel,
    ExplicitContentFilterLevel,
    ForumLayoutTypes,
    GuildFeature,
    GuildMemberFlags,
    GuildScheduledEventEntityType,
    GuildScheduledEventPrivacyLevel,
    GuildScheduledEventStatus,
    InteractionContextType,
    InviteTargetType,
    MessageFlag,
    Missing,
    MissingOrNullable,
    OnboardingMode,
    OverwriteType,
    ReactionType,
    SortOrderTypes,
    StagePrivacyLevel,
    SystemChannelFlags,
    TriggerType,
    VerificationLevel,
    VideoQualityMode,
)

class ApiClient:
    async def get_global_application_commands(
        self,
        *,
        application_id: SnowflakeType,
        with_localizations: bool | None = ...,
    ) -> list[ApplicationCommand]:
        """Get global application commands.

        see https://discord.com/developers/docs/interactions/application-commands#get-global-application-commands
        """

    async def create_global_application_command(
        self,
        *,
        application_id: SnowflakeType,
        name: str,
        name_localizations: dict[str, str] | None = ...,
        description: str | None = ...,
        description_localizations: dict[str, str] | None = ...,
        options: list[ApplicationCommandOption] | None = ...,
        default_member_permissions: str | None = ...,
        dm_permission: bool | None = ...,
        default_permission: bool | None = ...,
        type: ApplicationCommandType | None = ...,
        nsfw: bool | None = ...,
        integration_types: list[ApplicationIntegrationType] | None = ...,
        contexts: list[InteractionContextType] | None = ...,
    ) -> ApplicationCommand:
        """Create global application command.

        see https://discord.com/developers/docs/interactions/application-commands#create-global-application-command
        """

    async def get_global_application_command(
        self,
        *,
        application_id: SnowflakeType,
        command_id: SnowflakeType,
    ) -> ApplicationCommand:
        """Get global application command.

        see https://discord.com/developers/docs/interactions/application-commands#get-global-application-command
        """

    async def edit_global_application_command(
        self,
        *,
        application_id: SnowflakeType,
        command_id: SnowflakeType,
        name: Missing[str] = ...,
        name_localizations: MissingOrNullable[dict[str, str]] = ...,
        description: Missing[str] = ...,
        description_localizations: MissingOrNullable[dict[str, str]] = ...,
        options: Missing[list[ApplicationCommandOption]] = ...,
        default_member_permissions: MissingOrNullable[str] = ...,
        dm_permission: Missing[bool] = ...,
        default_permission: MissingOrNullable[bool] = ...,
        nsfw: Missing[bool] = ...,
        integration_types: Missing[list[ApplicationIntegrationType]] = ...,
        contexts: MissingOrNullable[list[InteractionContextType]] = ...,
    ) -> ApplicationCommand:
        """Edit global application command.

        see https://discord.com/developers/docs/interactions/application-commands#edit-global-application-command
        """

    async def delete_global_application_command(
        self,
        *,
        application_id: SnowflakeType,
        command_id: SnowflakeType,
    ) -> None:
        """Delete global application command.

        see https://discord.com/developers/docs/interactions/application-commands#delete-global-application-command
        """

    async def bulk_overwrite_global_application_commands(
        self,
        *,
        application_id: SnowflakeType,
        commands: list[ApplicationCommandBulkOverwriteParams],
    ) -> list[ApplicationCommand]:
        """Bulk overwrite global application commands.

        see https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-global-application-commands
        """

    async def get_guild_application_commands(
        self,
        *,
        application_id: SnowflakeType,
        guild_id: SnowflakeType,
        with_localizations: bool | None = ...,
    ) -> list[ApplicationCommand]:
        """Get guild application commands.

        see https://discord.com/developers/docs/interactions/application-commands#get-guild-application-commands
        """

    async def create_guild_application_command(
        self,
        *,
        application_id: SnowflakeType,
        guild_id: SnowflakeType,
        name: str,
        name_localizations: dict[str, str] | None = ...,
        description: str | None = ...,
        description_localizations: dict[str, str] | None = ...,
        options: list[ApplicationCommandOption] | None = ...,
        default_member_permissions: str | None = ...,
        default_permission: bool | None = ...,
        type: ApplicationCommandType | None = ...,
        nsfw: bool | None = ...,
    ) -> ApplicationCommand:
        """Create guild application command.

        see https://discord.com/developers/docs/interactions/application-commands#create-guild-application-command
        """

    async def get_guild_application_command(
        self,
        *,
        application_id: SnowflakeType,
        guild_id: SnowflakeType,
        command_id: SnowflakeType,
    ) -> ApplicationCommand:
        """Get guild application command.

        see https://discord.com/developers/docs/interactions/application-commands#get-guild-application-command
        """

    async def edit_guild_application_command(
        self,
        *,
        application_id: SnowflakeType,
        guild_id: SnowflakeType,
        command_id: SnowflakeType,
        name: Missing[str] = ...,
        name_localizations: MissingOrNullable[dict[str, str]] = ...,
        description: Missing[str] = ...,
        description_localizations: MissingOrNullable[dict[str, str]] = ...,
        options: Missing[list[ApplicationCommandOption]] = ...,
        default_member_permissions: MissingOrNullable[str] = ...,
        default_permission: MissingOrNullable[bool] = ...,
        nsfw: Missing[bool] = ...,
    ) -> ApplicationCommand:
        """Edit guild application command.

        see https://discord.com/developers/docs/interactions/application-commands#edit-guild-application-command
        """

    async def delete_guild_application_command(
        self,
        *,
        application_id: SnowflakeType,
        guild_id: SnowflakeType,
        command_id: SnowflakeType,
    ) -> None:
        """Delete guild application command.

        see https://discord.com/developers/docs/interactions/application-commands#delete-guild-application-command
        """

    async def bulk_overwrite_guild_application_commands(
        self,
        *,
        application_id: SnowflakeType,
        guild_id: SnowflakeType,
        commands: list[ApplicationCommandBulkOverwriteParams],
    ) -> list[ApplicationCommand]:
        """Bulk overwrite guild application commands.

        see https://discord.com/developers/docs/interactions/application-commands#bulk-overwrite-guild-application-commands
        """

    async def get_guild_application_command_permissions(
        self,
        *,
        application_id: SnowflakeType,
        guild_id: SnowflakeType,
        access_token: str,
    ) -> list[GuildApplicationCommandPermissions]:
        """Get guild application command permissions.

        see https://discord.com/developers/docs/interactions/application-commands#get-guild-application-command-permissions
        """

    async def get_application_command_permissions(
        self,
        *,
        application_id: SnowflakeType,
        guild_id: SnowflakeType,
        command_id: SnowflakeType,
        access_token: str,
    ) -> GuildApplicationCommandPermissions:
        """Get application command permissions.

        see https://discord.com/developers/docs/interactions/application-commands#get-application-command-permissions
        """

    async def edit_application_command_permissions(
        self,
        *,
        application_id: SnowflakeType,
        guild_id: SnowflakeType,
        command_id: SnowflakeType,
        access_token: str,
        permissions: list[ApplicationCommandPermissions],
    ) -> GuildApplicationCommandPermissions:
        """Edit application command permissions.

        see https://discord.com/developers/docs/interactions/application-commands#edit-application-command-permissions
        """

    async def create_interaction_response(
        self,
        *,
        interaction_id: SnowflakeType,
        interaction_token: str,
        response: InteractionResponse,
        with_response: bool | None = ...,
    ) -> InteractionResponse | None:
        """Create an interaction response.

        see https://discord.com/developers/docs/interactions/receiving-and-responding#create-interaction-response
        """

    async def get_origin_interaction_response(
        self,
        *,
        application_id: SnowflakeType,
        interaction_token: str,
        thread_id: SnowflakeType | None = ...,
    ) -> MessageGet:
        """Get the original interaction response.

        see https://discord.com/developers/docs/interactions/receiving-and-responding#get-original-interaction-response
        """

    async def edit_origin_interaction_response(
        self,
        *,
        application_id: SnowflakeType,
        interaction_token: str,
        thread_id: SnowflakeType | None = ...,
        with_components: bool | None = ...,
        content: MissingOrNullable[str] = ...,
        embeds: MissingOrNullable[list[Embed]] = ...,
        flags: MissingOrNullable[MessageFlag] = ...,
        allowed_mentions: MissingOrNullable[AllowedMention] = ...,
        components: MissingOrNullable[list[Component]] = ...,
        files: Missing[list[File]] = ...,
        attachments: MissingOrNullable[list[AttachmentSend]] = ...,
        poll: MissingOrNullable[PollRequest] = ...,
    ) -> MessageGet:
        """Edit the original interaction response.

        see https://discord.com/developers/docs/interactions/receiving-and-responding#edit-original-interaction-response
        """

    async def delete_origin_interaction_response(
        self,
        *,
        application_id: SnowflakeType,
        interaction_token: str,
        thread_id: SnowflakeType | None = ...,
    ) -> None:
        """Delete the original interaction response.

        see https://discord.com/developers/docs/interactions/receiving-and-responding#delete-original-interaction-response
        """

    async def create_followup_message(
        self,
        *,
        application_id: SnowflakeType,
        interaction_token: str,
        content: str | None = ...,
        tts: bool | None = ...,
        embeds: list[Embed] | None = ...,
        allowed_mentions: AllowedMention | None = ...,
        components: list[Component] | None = ...,
        files: list[File] | None = ...,
        attachments: list[AttachmentSend] | None = ...,
        flags: int | None = ...,
    ) -> MessageGet:
        """Create a followup message.

        see https://discord.com/developers/docs/interactions/receiving-and-responding#create-followup-message
        """

    async def get_followup_message(
        self,
        *,
        application_id: SnowflakeType,
        interaction_token: str,
        message_id: SnowflakeType,
        thread_id: SnowflakeType | None = ...,
    ) -> MessageGet:
        """Get a followup message.

        see https://discord.com/developers/docs/interactions/receiving-and-responding#get-followup-message
        """

    async def edit_followup_message(
        self,
        *,
        application_id: SnowflakeType,
        interaction_token: str,
        message_id: SnowflakeType,
        thread_id: SnowflakeType | None = ...,
        with_components: bool | None = ...,
        content: MissingOrNullable[str] = ...,
        embeds: MissingOrNullable[list[Embed]] = ...,
        flags: MissingOrNullable[MessageFlag] = ...,
        allowed_mentions: MissingOrNullable[AllowedMention] = ...,
        components: MissingOrNullable[list[Component]] = ...,
        files: Missing[list[File]] = ...,
        attachments: MissingOrNullable[list[AttachmentSend]] = ...,
        poll: MissingOrNullable[PollRequest] = ...,
    ) -> MessageGet:
        """Edit a followup message.

        see https://discord.com/developers/docs/interactions/receiving-and-responding#edit-followup-message
        """

    async def delete_followup_message(
        self,
        *,
        application_id: SnowflakeType,
        interaction_token: str,
        message_id: SnowflakeType,
        thread_id: SnowflakeType | None = ...,
    ) -> None:
        """Delete a followup message.

        see https://discord.com/developers/docs/interactions/receiving-and-responding#delete-followup-message
        """

    async def get_current_application(
        self,
    ) -> Application:
        """Get current application.

        see https://discord.com/developers/docs/resources/application#get-current-application
        """

    async def edit_current_application(
        self,
        *,
        custom_install_url: Missing[str] = ...,
        description: Missing[str] = ...,
        role_connections_verification_url: Missing[str] = ...,
        install_params: Missing[InstallParams] = ...,
        integration_types_config: Missing[
            dict[ApplicationIntegrationType, ApplicationIntegrationTypeConfiguration]
        ] = ...,
        flags: Missing[ApplicationFlag] = ...,
        icon: MissingOrNullable[str] = ...,
        cover_image: MissingOrNullable[str] = ...,
        interactions_endpoint_url: Missing[str] = ...,
        tags: Missing[list[str]] = ...,
        event_webhooks_url: Missing[str] = ...,
        event_webhooks_status: Missing[int] = ...,
        event_webhooks_types: Missing[list[str]] = ...,
    ) -> Application:
        """Edit current application.

        see https://discord.com/developers/docs/resources/application#edit-current-application
        """

    async def get_application_activity_instance(
        self,
        *,
        application_id: SnowflakeType,
        instance_id: str,
    ) -> ActivityInstance:
        """Get application activity instance.

        see https://discord.com/developers/docs/resources/application#get-application-activity-instance
        """

    async def get_application_role_connection_metadata_records(
        self,
        *,
        application_id: SnowflakeType,
    ) -> list[ApplicationRoleConnectionMetadata]:
        """Get application role connection metadata records.

        see https://discord.com/developers/docs/resources/application-role-connection-metadata#get-application-role-connection-metadata-records
        """

    async def update_application_role_connection_metadata_records(
        self,
        *,
        application_id: SnowflakeType,
        records: list[ApplicationRoleConnectionMetadata],
    ) -> list[ApplicationRoleConnectionMetadata]:
        """Update application role connection metadata records.

        see https://discord.com/developers/docs/resources/application-role-connection-metadata#update-application-role-connection-metadata-records
        """

    async def get_guild_audit_log(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType | None = ...,
        action_type: AuditLogEventType | None = ...,
        before: SnowflakeType | None = ...,
        after: SnowflakeType | None = ...,
        limit: int | None = ...,
    ) -> AuditLog:
        """Get guild audit log.

        see https://discord.com/developers/docs/resources/audit-log#get-guild-audit-log
        """

    async def list_auto_moderation_rules_for_guild(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> list[AutoModerationRule]:
        """List auto moderation rules for guild.

        see https://discord.com/developers/docs/resources/auto-moderation#list-auto-moderation-rules-for-guild
        """

    async def get_auto_moderation_rule(
        self,
        *,
        guild_id: SnowflakeType,
        rule_id: SnowflakeType,
    ) -> AutoModerationRule:
        """Get auto moderation rule.

        see https://discord.com/developers/docs/resources/auto-moderation#get-auto-moderation-rule
        """

    async def create_auto_moderation_rule(
        self,
        *,
        guild_id: SnowflakeType,
        name: str,
        event_type: AutoModerationRuleEventType,
        trigger_type: TriggerType,
        actions: list[AutoModerationAction],
        trigger_metadata: TriggerMetadata | None = ...,
        enabled: bool | None = ...,
        exempt_roles: list[SnowflakeType] | None = ...,
        exempt_channels: list[SnowflakeType] | None = ...,
        reason: str | None = ...,
    ) -> AutoModerationRule:
        """Create auto moderation rule.

        see https://discord.com/developers/docs/resources/auto-moderation#create-auto-moderation-rule
        """

    async def modify_auto_moderation_rule(
        self,
        *,
        guild_id: SnowflakeType,
        rule_id: SnowflakeType,
        name: str | None = ...,
        event_type: AutoModerationRuleEventType | None = ...,
        trigger_metadata: TriggerMetadata | None = ...,
        actions: list[AutoModerationAction] | None = ...,
        enabled: bool | None = ...,
        exempt_roles: list[SnowflakeType] | None = ...,
        exempt_channels: list[SnowflakeType] | None = ...,
        reason: str | None = ...,
    ) -> AutoModerationRule:
        """Modify auto moderation rule.

        see https://discord.com/developers/docs/resources/auto-moderation#modify-auto-moderation-rule
        """

    async def delete_auto_moderation_rule(
        self,
        *,
        guild_id: SnowflakeType,
        rule_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Delete auto moderation rule.

        see https://discord.com/developers/docs/resources/auto-moderation#delete-auto-moderation-rule
        """

    async def get_channel(
        self,
        *,
        channel_id: SnowflakeType,
    ) -> Channel:
        """Get a channel by ID.

        see https://discord.com/developers/docs/resources/channel#get-channel
        """

    async def modify_DM(
        self,
        *,
        channel_id: SnowflakeType,
        name: str | None = ...,
        icon: bytes | None = ...,
        reason: str | None = ...,
    ) -> Channel:
        """Update a Group DM channel's settings.

        see https://discord.com/developers/docs/resources/channel#modify-channel
        """

    async def modify_channel(
        self,
        *,
        channel_id: SnowflakeType,
        name: Missing[str] = ...,
        type: Missing[ChannelType] = ...,
        position: MissingOrNullable[int] = ...,
        topic: MissingOrNullable[str] = ...,
        nsfw: MissingOrNullable[bool] = ...,
        rate_limit_per_user: MissingOrNullable[int] = ...,
        bitrate: MissingOrNullable[int] = ...,
        user_limit: MissingOrNullable[int] = ...,
        permission_overwrites: MissingOrNullable[list[PartialOverwrite]] = ...,
        parent_id: MissingOrNullable[SnowflakeType] = ...,
        rtc_region: MissingOrNullable[str] = ...,
        video_quality_mode: MissingOrNullable[VideoQualityMode] = ...,
        default_auto_archive_duration: MissingOrNullable[int] = ...,
        flags: Missing[ChannelFlags] = ...,
        available_tags: Missing[list[ForumTagRequest]] = ...,
        default_reaction_emoji: MissingOrNullable[DefaultReaction] = ...,
        default_thread_rate_limit_per_user: Missing[int] = ...,
        default_sort_order: MissingOrNullable[SortOrderTypes] = ...,
        default_forum_layout: Missing[ForumLayoutTypes] = ...,
        reason: str | None = ...,
    ) -> Channel:
        """Update a channel's settings.

        see https://discord.com/developers/docs/resources/channel#modify-channel
        """

    async def modify_thread(
        self,
        *,
        channel_id: SnowflakeType,
        name: Missing[str] = ...,
        archived: Missing[bool] = ...,
        auto_archive_duration: Missing[int] = ...,
        locked: Missing[bool] = ...,
        invitable: Missing[bool] = ...,
        rate_limit_per_user: MissingOrNullable[int] = ...,
        flags: Missing[ChannelFlags] = ...,
        applied_tags: Missing[list[SnowflakeType]] = ...,
        reason: str | None = ...,
    ) -> Channel:
        """Update a thread's settings.

        see https://discord.com/developers/docs/resources/channel#modify-channel
        """

    async def delete_channel(
        self,
        *,
        channel_id: SnowflakeType,
        reason: str | None = ...,
    ) -> Channel:
        """Delete or close a channel.

        see https://discord.com/developers/docs/resources/channel#delete/close-channel
        """

    async def get_channel_messages(
        self,
        *,
        channel_id: SnowflakeType,
        around: SnowflakeType | None = ...,
        before: SnowflakeType | None = ...,
        after: SnowflakeType | None = ...,
        limit: int | None = ...,
    ) -> list[MessageGet]:
        """Get channel messages.

        see https://discord.com/developers/docs/resources/message#get-channel-messages
        """

    async def get_channel_message(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
    ) -> MessageGet:
        """Get a channel message.

        see https://discord.com/developers/docs/resources/message#get-channel-message
        """

    async def create_message(
        self,
        *,
        channel_id: SnowflakeType,
        content: str | None = ...,
        nonce: int | str | None = ...,
        enforce_nonce: bool | None = ...,
        tts: bool | None = ...,
        embeds: list[Embed] | None = ...,
        allowed_mentions: AllowedMention | None = ...,
        message_reference: MessageReference | None = ...,
        components: list[DirectComponent] | None = ...,
        sticker_ids: list[SnowflakeType] | None = ...,
        files: list[File] | None = ...,
        attachments: list[AttachmentSend] | None = ...,
        flags: MessageFlag | None = ...,
        poll: PollRequest | None = ...,
    ) -> MessageGet:
        """Create a message.

        see https://discord.com/developers/docs/resources/message#create-message
        """

    async def crosspost_message(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
    ) -> MessageGet:
        """Crosspost a message.

        see https://discord.com/developers/docs/resources/message#crosspost-message
        """

    async def create_reaction(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
        emoji: str,
        emoji_id: SnowflakeType | None = ...,
    ) -> None:
        """Create a reaction.

        see https://discord.com/developers/docs/resources/message#create-reaction
        """

    async def delete_own_reaction(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
        emoji: str,
        emoji_id: SnowflakeType | None = ...,
    ) -> None:
        """Delete own reaction.

        see https://discord.com/developers/docs/resources/message#delete-own-reaction
        """

    async def delete_user_reaction(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
        user_id: SnowflakeType,
        emoji: str,
        emoji_id: SnowflakeType | None = ...,
    ) -> None:
        """Delete a user reaction.

        see https://discord.com/developers/docs/resources/message#delete-user-reaction
        """

    async def get_reactions(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
        emoji: str,
        emoji_id: SnowflakeType | None = ...,
        type: ReactionType | None = ...,
        after: SnowflakeType | None = ...,
        limit: int | None = ...,
    ) -> list[User]:
        """Get reactions.

        see https://discord.com/developers/docs/resources/message#get-reactions
        """

    async def delete_all_reactions(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
    ) -> None:
        """Delete all reactions.

        see https://discord.com/developers/docs/resources/message#delete-all-reactions
        """

    async def delete_all_reactions_for_emoji(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
        emoji: str,
        emoji_id: SnowflakeType | None = ...,
    ) -> None:
        """Delete all reactions for emoji.

        see https://discord.com/developers/docs/resources/message#delete-all-reactions-for-emoji
        """

    async def edit_message(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
        content: MissingOrNullable[str] = ...,
        embeds: MissingOrNullable[list[Embed]] = ...,
        flags: MissingOrNullable[MessageFlag] = ...,
        allowed_mentions: MissingOrNullable[AllowedMention] = ...,
        components: MissingOrNullable[list[Component]] = ...,
        files: Missing[list[File]] = ...,
        attachments: MissingOrNullable[list[AttachmentSend]] = ...,
        sticker_ids: Missing[list[SnowflakeType]] = ...,
        poll: MissingOrNullable[PollRequest] = ...,
    ) -> MessageGet:
        """Edit a message.

        see https://discord.com/developers/docs/resources/message#edit-message
        """

    async def delete_message(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Delete a message.

        see https://discord.com/developers/docs/resources/message#delete-message
        """

    async def bulk_delete_message(
        self,
        *,
        channel_id: SnowflakeType,
        messages: list[SnowflakeType],
        reason: str | None = ...,
    ) -> None:
        """Bulk delete messages.

        see https://discord.com/developers/docs/resources/message#bulk-delete-messages
        """

    async def edit_channel_permissions(
        self,
        *,
        channel_id: SnowflakeType,
        overwrite_id: SnowflakeType,
        allow: str | None = ...,
        deny: str | None = ...,
        type: OverwriteType,
        reason: str | None = ...,
    ) -> None:
        """Edit channel permissions.

        see https://discord.com/developers/docs/resources/channel#edit-channel-permissions
        """

    async def get_channel_invites(
        self,
        *,
        channel_id: SnowflakeType,
    ) -> list[Invite]:
        """Get channel invites.

        see https://discord.com/developers/docs/resources/channel#get-channel-invites
        """

    async def create_channel_invite(
        self,
        *,
        channel_id: SnowflakeType,
        max_age: int | None = ...,
        max_uses: int | None = ...,
        temporary: bool | None = ...,
        unique: bool | None = ...,
        target_type: InviteTargetType | None = ...,
        target_user_id: SnowflakeType | None = ...,
        target_application_id: SnowflakeType | None = ...,
        target_users_file: File | None = ...,
        role_ids: list[SnowflakeType] | None = ...,
        reason: str | None = ...,
    ) -> Invite:
        """Create channel invite.

        see https://discord.com/developers/docs/resources/channel#create-channel-invite
        """

    async def delete_channel_permission(
        self,
        *,
        channel_id: SnowflakeType,
        overwrite_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Delete channel permission.

        see https://discord.com/developers/docs/resources/channel#delete-channel-permission
        """

    async def follow_announcement_channel(
        self,
        *,
        channel_id: SnowflakeType,
        webhook_channel_id: SnowflakeType,
        reason: str | None = ...,
    ) -> FollowedChannel:
        """Follow announcement channel.

        see https://discord.com/developers/docs/resources/channel#follow-announcement-channel
        """

    async def trigger_typing_indicator(
        self,
        *,
        channel_id: SnowflakeType,
    ) -> None:
        """Trigger typing indicator.

        see https://discord.com/developers/docs/resources/channel#trigger-typing-indicator
        """

    async def get_pinned_messages(
        self,
        *,
        channel_id: SnowflakeType,
    ) -> list[MessageGet]:
        """Get pinned messages.

        see https://discord.com/developers/docs/resources/message#get-channel-pins
        """

    async def pin_message(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Pin message.

        see https://discord.com/developers/docs/resources/message#pin-message
        """

    async def unpin_message(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Unpin message.

        see https://discord.com/developers/docs/resources/message#unpin-message
        """

    async def group_DM_add_recipient(
        self,
        *,
        channel_id: SnowflakeType,
        user_id: SnowflakeType,
        access_token: str,
        nick: str,
    ) -> None:
        """Group DM add recipient.

        see https://discord.com/developers/docs/resources/channel#group-dm-add-recipient
        """

    async def group_DM_remove_recipient(
        self,
        *,
        channel_id: SnowflakeType,
        user_id: SnowflakeType,
    ) -> None:
        """Group DM remove recipient.

        see https://discord.com/developers/docs/resources/channel#group-dm-remove-recipient
        """

    async def start_thread_from_message(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
        name: str,
        auto_archive_duration: Missing[int] = ...,
        rate_limit_per_user: MissingOrNullable[int] = ...,
        reason: str | None = ...,
    ) -> Channel:
        """Start thread from message.

        see https://discord.com/developers/docs/resources/channel#start-thread-from-message
        """

    async def start_thread_without_message(
        self,
        *,
        channel_id: SnowflakeType,
        name: str,
        auto_archive_duration: Missing[int] = ...,
        type: Missing[ChannelType] = ...,
        invitable: Missing[bool] = ...,
        rate_limit_per_user: MissingOrNullable[int] = ...,
        reason: str | None = ...,
    ) -> Channel:
        """Start thread without message.

        see https://discord.com/developers/docs/resources/channel#start-thread-without-message
        """

    async def start_thread_in_forum_channel(
        self,
        *,
        channel_id: SnowflakeType,
        name: str,
        auto_archive_duration: Missing[int] = ...,
        rate_limit_per_user: MissingOrNullable[int] = ...,
        applied_tags: Missing[list[SnowflakeType]] = ...,
        content: str | None = ...,
        embeds: list[Embed] | None = ...,
        allowed_mentions: AllowedMention | None = ...,
        components: list[DirectComponent] | None = ...,
        sticker_ids: list[SnowflakeType] | None = ...,
        files: list[File] | None = ...,
        attachments: list[AttachmentSend] | None = ...,
        flags: MessageFlag | None = ...,
        reason: str | None = ...,
    ) -> Channel:
        """Start thread in forum or media channel.

        see https://discord.com/developers/docs/resources/channel#start-thread-in-forum-or-media-channel
        """

    async def join_thread(
        self,
        *,
        channel_id: SnowflakeType,
    ) -> None:
        """Join thread.

        see https://discord.com/developers/docs/resources/channel#join-thread
        """

    async def add_thread_member(
        self,
        *,
        channel_id: SnowflakeType,
        user_id: SnowflakeType,
    ) -> None:
        """Add thread member.

        see https://discord.com/developers/docs/resources/channel#add-thread-member
        """

    async def leave_thread(
        self,
        *,
        channel_id: SnowflakeType,
    ) -> None:
        """Leave thread.

        see https://discord.com/developers/docs/resources/channel#leave-thread
        """

    async def remove_thread_member(
        self,
        *,
        channel_id: SnowflakeType,
        user_id: SnowflakeType,
    ) -> None:
        """Remove thread member.

        see https://discord.com/developers/docs/resources/channel#remove-thread-member
        """

    async def get_thread_member(
        self,
        *,
        channel_id: SnowflakeType,
        user_id: SnowflakeType,
        with_member: bool | None = ...,
    ) -> ThreadMember:
        """Get thread member.

        see https://discord.com/developers/docs/resources/channel#get-thread-member
        """

    async def list_thread_members(
        self,
        *,
        channel_id: SnowflakeType,
        with_member: bool | None = ...,
        after: SnowflakeType | None = ...,
        limit: int | None = ...,
    ) -> list[ThreadMember]:
        """List thread members.

        see https://discord.com/developers/docs/resources/channel#list-thread-members
        """

    async def list_public_archived_threads(
        self,
        *,
        channel_id: SnowflakeType,
        before: datetime | None = ...,
        limit: int | None = ...,
    ) -> ArchivedThreadsResponse:
        """List public archived threads.

        see https://discord.com/developers/docs/resources/channel#list-public-archived-threads
        """

    async def list_private_archived_threads(
        self,
        *,
        channel_id: SnowflakeType,
        before: datetime | None = ...,
        limit: int | None = ...,
    ) -> ArchivedThreadsResponse:
        """List private archived threads.

        see https://discord.com/developers/docs/resources/channel#list-private-archived-threads
        """

    async def list_joined_private_archived_threads(
        self,
        *,
        channel_id: SnowflakeType,
        before: SnowflakeType | None = ...,
        limit: int | None = ...,
    ) -> ArchivedThreadsResponse:
        """List joined private archived threads.

        see https://discord.com/developers/docs/resources/channel#list-joined-private-archived-threads
        """

    async def list_guild_emojis(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> list[Emoji]:
        """List guild emojis.

        see https://discord.com/developers/docs/resources/emoji#list-guild-emojis
        """

    async def get_guild_emoji(
        self,
        *,
        guild_id: SnowflakeType,
        emoji_id: SnowflakeType,
    ) -> Emoji:
        """Get guild emoji.

        see https://discord.com/developers/docs/resources/emoji#get-guild-emoji
        """

    async def create_guild_emoji(
        self,
        *,
        guild_id: SnowflakeType,
        name: str,
        image: str,
        roles: list[SnowflakeType] | None = ...,
        reason: str | None = ...,
    ) -> Emoji:
        """Create guild emoji.

        see https://discord.com/developers/docs/resources/emoji#create-guild-emoji
        """

    async def modify_guild_emoji(
        self,
        *,
        guild_id: SnowflakeType,
        emoji_id: SnowflakeType,
        name: Missing[str] = ...,
        roles: MissingOrNullable[list[SnowflakeType]] = ...,
        reason: str | None = ...,
    ) -> Emoji:
        """Modify guild emoji.

        see https://discord.com/developers/docs/resources/emoji#modify-guild-emoji
        """

    async def delete_guild_emoji(
        self,
        *,
        guild_id: SnowflakeType,
        emoji_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Delete guild emoji.

        see https://discord.com/developers/docs/resources/emoji#delete-guild-emoji
        """

    async def list_application_emojis(
        self,
        *,
        application_id: SnowflakeType,
    ) -> ApplicationEmojis:
        """List application emojis.

        see https://discord.com/developers/docs/resources/emoji#list-application-emojis
        """

    async def get_application_emoji(
        self,
        *,
        application_id: SnowflakeType,
        emoji_id: SnowflakeType,
    ) -> Emoji:
        """Get application emoji.

        see https://discord.com/developers/docs/resources/emoji#get-application-emoji
        """

    async def create_application_emoji(
        self,
        *,
        application_id: SnowflakeType,
        name: str,
        image: str,
    ) -> Emoji:
        """Create application emoji.

        see https://discord.com/developers/docs/resources/emoji#create-application-emoji
        """

    async def modify_application_emoji(
        self,
        *,
        application_id: SnowflakeType,
        emoji_id: SnowflakeType,
        name: str,
    ) -> Emoji:
        """Modify application emoji.

        see https://discord.com/developers/docs/resources/emoji#modify-application-emoji
        """

    async def delete_application_emoji(
        self,
        *,
        application_id: SnowflakeType,
        emoji_id: SnowflakeType,
    ) -> None:
        """Delete application emoji.

        see https://discord.com/developers/docs/resources/emoji#delete-application-emoji
        """

    async def list_entitlements(
        self,
        *,
        application_id: SnowflakeType,
        user_id: SnowflakeType | None = ...,
        sku_ids: tuple[SnowflakeType] | None = ...,
        before: SnowflakeType | None = ...,
        after: SnowflakeType | None = ...,
        limit: int | None = ...,
        guild_id: SnowflakeType | None = ...,
        exclude_ended: bool | None = ...,
        exclude_deleted: bool | None = ...,
    ) -> list[Entitlement]:
        """List entitlements.

        see https://discord.com/developers/docs/resources/entitlement#list-entitlements
        """

    async def consume_an_entitlement(
        self,
        *,
        application_id: SnowflakeType,
        entitlement_id: SnowflakeType,
    ) -> None:
        """Consume an entitlement.

        see https://discord.com/developers/docs/resources/entitlement#consume-an-entitlement
        """

    async def create_test_entitlement(
        self,
        *,
        application_id: SnowflakeType,
        sku_id: str,
        owner_id: str,
        owner_type: Literal[1, 2],
    ) -> Entitlement:
        """Create test entitlement.

        see https://discord.com/developers/docs/resources/entitlement#create-test-entitlement
        """

    async def delete_test_entitlement(
        self,
        *,
        application_id: SnowflakeType,
        entitlement_id: SnowflakeType,
    ) -> None:
        """Delete test entitlement.

        see https://discord.com/developers/docs/resources/entitlement#delete-test-entitlement
        """

    async def create_guild(
        self,
        *,
        name: str,
        region: str | None = ...,
        icon: str | None = ...,
        verification_level: VerificationLevel | None = ...,
        default_message_notifications: DefaultMessageNotificationLevel | None = ...,
        explicit_content_filter: ExplicitContentFilterLevel | None = ...,
        roles: list[Role] | None = ...,
        channels: list[Channel] | None = ...,
        afk_channel_id: Snowflake | None = ...,
        afk_timeout: int | None = ...,
        system_channel_id: Snowflake | None = ...,
        system_channel_flags: SystemChannelFlags | None = ...,
    ) -> Guild:
        """https://discord.com/developers/docs/resources/guild"""

    async def get_guild(
        self,
        *,
        guild_id: SnowflakeType,
        with_counts: bool | None = ...,
    ) -> Guild:
        """Get guild.

        see https://discord.com/developers/docs/resources/guild#get-guild
        """

    async def get_guild_preview(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> GuildPreview:
        """Get guild preview.

        see https://discord.com/developers/docs/resources/guild#get-guild-preview
        """

    async def modify_guild(
        self,
        *,
        guild_id: SnowflakeType,
        name: Missing[str] = ...,
        region: MissingOrNullable[str] = ...,
        verification_level: MissingOrNullable[VerificationLevel] = ...,
        default_message_notifications: MissingOrNullable[
            DefaultMessageNotificationLevel
        ] = ...,
        explicit_content_filter: MissingOrNullable[ExplicitContentFilterLevel] = ...,
        afk_channel_id: MissingOrNullable[Snowflake] = ...,
        afk_timeout: Missing[int] = ...,
        icon: MissingOrNullable[str] = ...,
        splash: MissingOrNullable[str] = ...,
        discovery_splash: MissingOrNullable[str] = ...,
        banner: MissingOrNullable[str] = ...,
        system_channel_id: MissingOrNullable[Snowflake] = ...,
        system_channel_flags: Missing[SystemChannelFlags] = ...,
        rules_channel_id: MissingOrNullable[Snowflake] = ...,
        public_updates_channel_id: MissingOrNullable[Snowflake] = ...,
        preferred_locale: MissingOrNullable[str] = ...,
        features: Missing[list[GuildFeature]] = ...,
        description: MissingOrNullable[str] = ...,
        premium_progress_bar_enabled: Missing[bool] = ...,
        safety_alerts_channel_id: MissingOrNullable[Snowflake] = ...,
        reason: str | None = ...,
    ) -> Guild:
        """Modify guild.

        see https://discord.com/developers/docs/resources/guild#modify-guild
        """

    async def delete_guild(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> None:
        """https://discord.com/developers/docs/resources/guild"""

    async def get_guild_channels(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> list[Channel]:
        """Get guild channels.

        see https://discord.com/developers/docs/resources/guild#get-guild-channels
        """

    async def create_guild_channel(
        self,
        *,
        guild_id: SnowflakeType,
        name: str,
        type: ChannelType | None = ...,
        topic: str | None = ...,
        bitrate: int | None = ...,
        user_limit: int | None = ...,
        rate_limit_per_user: int | None = ...,
        position: int | None = ...,
        permission_overwrites: list[Overwrite] | None = ...,
        parent_id: Snowflake | None = ...,
        nsfw: bool | None = ...,
        rtc_region: str | None = ...,
        video_quality_mode: VideoQualityMode | None = ...,
        default_auto_archive_duration: int | None = ...,
        default_reaction_emoji: DefaultReaction | None = ...,
        available_tags: list[ForumTagRequest] | None = ...,
        default_sort_order: SortOrderTypes | None = ...,
        reason: str | None = ...,
    ) -> Channel:
        """Create guild channel.

        see https://discord.com/developers/docs/resources/guild#create-guild-channel
        """

    async def modify_guild_channel_positions(
        self,
        *,
        guild_id: SnowflakeType,
        channels: list[ModifyGuildChannelPositionParams] | None = ...,
        id: SnowflakeType | None = ...,
        position: MissingOrNullable[int] = ...,
        lock_permissions: MissingOrNullable[bool] = ...,
        parent_id: MissingOrNullable[SnowflakeType] = ...,
    ) -> None:
        """Modify guild channel positions.

        see https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions
        """

    async def list_active_guild_threads(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> ListActiveGuildThreadsResponse:
        """List active guild threads.

        see https://discord.com/developers/docs/resources/guild#list-active-guild-threads
        """

    async def get_guild_member(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType,
    ) -> GuildMember:
        """Get guild member.

        see https://discord.com/developers/docs/resources/guild#get-guild-member
        """

    async def list_guild_members(
        self,
        *,
        guild_id: SnowflakeType,
        limit: int | None = ...,
        after: SnowflakeType | None = ...,
    ) -> list[GuildMember]:
        """List guild members.

        see https://discord.com/developers/docs/resources/guild#list-guild-members
        """

    async def search_guild_members(
        self,
        *,
        guild_id: SnowflakeType,
        query: str,
        limit: int | None = ...,
    ) -> list[GuildMember]:
        """Search guild members.

        see https://discord.com/developers/docs/resources/guild#search-guild-members
        """

    async def add_guild_member(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType,
        access_token: str,
        nick: str | None = ...,
        roles: list[SnowflakeType] | None = ...,
        mute: bool | None = ...,
        deaf: bool | None = ...,
    ) -> GuildMember | None:
        """Add guild member.

        see https://discord.com/developers/docs/resources/guild#add-guild-member
        """

    async def modify_guild_member(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType,
        nick: MissingOrNullable[str] = ...,
        roles: MissingOrNullable[list[SnowflakeType]] = ...,
        mute: MissingOrNullable[bool] = ...,
        deaf: MissingOrNullable[bool] = ...,
        channel_id: MissingOrNullable[SnowflakeType] = ...,
        communication_disabled_until: MissingOrNullable[datetime] = ...,
        flags: MissingOrNullable[GuildMemberFlags] = ...,
        reason: str | None = ...,
    ) -> GuildMember:
        """Modify guild member.

        see https://discord.com/developers/docs/resources/guild#modify-guild-member
        """

    async def modify_current_member(
        self,
        *,
        guild_id: SnowflakeType,
        nick: MissingOrNullable[str] = ...,
        banner: MissingOrNullable[str] = ...,
        avatar: MissingOrNullable[str] = ...,
        bio: MissingOrNullable[str] = ...,
        reason: str | None = ...,
    ) -> GuildMember:
        """Modify current member.

        see https://discord.com/developers/docs/resources/guild#modify-current-member
        """

    async def modify_current_user_nick(
        self,
        *,
        guild_id: SnowflakeType,
        nick: MissingOrNullable[str] = ...,
        reason: str | None = ...,
    ) -> GuildMember:
        """Deprecated in favor of Modify Current Member.

        see https://discord.com/developers/docs/resources/guild#modify-current-user-nick
        """

    async def add_guild_member_role(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType,
        role_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Add guild member role.

        see https://discord.com/developers/docs/resources/guild#add-guild-member-role
        """

    async def remove_guild_member_role(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType,
        role_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Remove guild member role.

        see https://discord.com/developers/docs/resources/guild#remove-guild-member-role
        """

    async def remove_guild_member(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Remove guild member.

        see https://discord.com/developers/docs/resources/guild#remove-guild-member
        """

    async def get_guild_bans(
        self,
        *,
        guild_id: SnowflakeType,
        limit: int | None = ...,
        before: SnowflakeType | None = ...,
        after: SnowflakeType | None = ...,
    ) -> list[Ban]:
        """Get guild bans.

        see https://discord.com/developers/docs/resources/guild#get-guild-bans
        """

    async def get_guild_ban(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType,
    ) -> Ban:
        """Get guild ban.

        see https://discord.com/developers/docs/resources/guild#get-guild-ban
        """

    async def create_guild_ban(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType,
        delete_message_days: int | None = ...,
        delete_message_seconds: int | None = ...,
        reason: str | None = ...,
    ) -> None:
        """Create guild ban.

        see https://discord.com/developers/docs/resources/guild#create-guild-ban
        """

    async def remove_guild_ban(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Remove guild ban.

        see https://discord.com/developers/docs/resources/guild#remove-guild-ban
        """

    async def bulk_guild_ban(
        self,
        *,
        guild_id: SnowflakeType,
        user_ids: list[SnowflakeType],
        delete_message_seconds: int | None = ...,
        reason: str | None = ...,
    ) -> BulkBan:
        """Bulk guild ban.

        see https://discord.com/developers/docs/resources/guild#bulk-guild-ban
        """

    async def get_guild_roles(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> list[Role]:
        """Get guild roles.

        see https://discord.com/developers/docs/resources/guild#get-guild-roles
        """

    async def get_guild_role(
        self,
        *,
        guild_id: SnowflakeType,
        role_id: SnowflakeType,
    ) -> Role:
        """Get guild role.

        see https://discord.com/developers/docs/resources/guild#get-guild-role
        """

    async def create_guild_role(
        self,
        *,
        guild_id: SnowflakeType,
        name: Missing[str] = ...,
        permissions: Missing[str] = ...,
        color: Missing[int] = ...,
        colors: Missing[RoleColors] = ...,
        hoist: Missing[bool] = ...,
        icon: MissingOrNullable[str] = ...,
        unicode_emoji: MissingOrNullable[str] = ...,
        mentionable: Missing[bool] = ...,
        reason: str | None = ...,
    ) -> Role:
        """Create guild role.

        see https://discord.com/developers/docs/resources/guild#create-guild-role
        """

    async def modify_guild_role_positions(
        self,
        *,
        guild_id: SnowflakeType,
        roles: list[ModifyGuildRolePositionParams] | None = ...,
        id: SnowflakeType | None = ...,
        position: MissingOrNullable[int] = ...,
        reason: str | None = ...,
    ) -> list[Role]:
        """Modify guild role positions.

        see https://discord.com/developers/docs/resources/guild#modify-guild-role-positions
        """

    async def modify_guild_role(
        self,
        *,
        guild_id: SnowflakeType,
        role_id: SnowflakeType,
        name: MissingOrNullable[str] = ...,
        permissions: MissingOrNullable[str] = ...,
        color: MissingOrNullable[int] = ...,
        colors: Missing[RoleColors] = ...,
        hoist: MissingOrNullable[bool] = ...,
        icon: MissingOrNullable[str] = ...,
        unicode_emoji: MissingOrNullable[str] = ...,
        mentionable: MissingOrNullable[bool] = ...,
        reason: str | None = ...,
    ) -> Role:
        """Modify guild role.

        see https://discord.com/developers/docs/resources/guild#modify-guild-role
        """

    async def modify_guild_MFA_level(
        self,
        *,
        guild_id: SnowflakeType,
        level: int,
        reason: str | None = ...,
    ) -> None:
        """https://discord.com/developers/docs/resources/guild"""

    async def delete_guild_role(
        self,
        *,
        guild_id: SnowflakeType,
        role_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Delete guild role.

        see https://discord.com/developers/docs/resources/guild#delete-guild-role
        """

    async def get_guild_prune_count(
        self,
        *,
        guild_id: SnowflakeType,
        days: int | None = ...,
        include_roles: list[SnowflakeType] | None = ...,
    ) -> dict[Literal["pruned"], int]:
        """Get guild prune count.

        see https://discord.com/developers/docs/resources/guild#get-guild-prune-count
        """

    async def begin_guild_prune(
        self,
        *,
        guild_id: SnowflakeType,
        days: int | None = ...,
        compute_prune_count: bool | None = ...,
        include_roles: list[SnowflakeType] | None = ...,
        reason: str | None = ...,
    ) -> dict[Literal["pruned"], int]:
        """Begin guild prune.

        see https://discord.com/developers/docs/resources/guild#begin-guild-prune
        """

    async def get_guild_voice_regions(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> list[VoiceRegion]:
        """Get guild voice regions.

        see https://discord.com/developers/docs/resources/guild#get-guild-voice-regions
        """

    async def get_guild_invites(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> list[Invite]:
        """Get guild invites.

        see https://discord.com/developers/docs/resources/guild#get-guild-invites
        """

    async def get_guild_integrations(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> list[Integration]:
        """Get guild integrations.

        see https://discord.com/developers/docs/resources/guild#get-guild-integrations
        """

    async def delete_guild_integration(
        self,
        *,
        guild_id: SnowflakeType,
        integration_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Delete guild integration.

        see https://discord.com/developers/docs/resources/guild#delete-guild-integration
        """

    async def get_guild_widget_settings(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> GuildWidgetSettings:
        """Get guild widget settings.

        see https://discord.com/developers/docs/resources/guild#get-guild-widget-settings
        """

    async def modify_guild_widget(
        self,
        *,
        guild_id: SnowflakeType,
        enabled: Missing[bool] = ...,
        channel_id: MissingOrNullable[SnowflakeType] = ...,
        reason: str | None = ...,
    ) -> GuildWidgetSettings:
        """Modify guild widget.

        see https://discord.com/developers/docs/resources/guild#modify-guild-widget
        """

    async def get_guild_widget(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> GuildWidget:
        """Get guild widget.

        see https://discord.com/developers/docs/resources/guild#get-guild-widget
        """

    async def get_guild_vanity_url(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> GuildVanityURL:
        """Get guild vanity URL.

        see https://discord.com/developers/docs/resources/guild#get-guild-vanity-url
        """

    async def get_guild_widget_image(
        self,
        *,
        guild_id: SnowflakeType,
        style: Literal["shield", "banner1", "banner2", "banner3", "banner4"]
        | None = ...,
    ) -> bytes:
        """Get guild widget image.

        see https://discord.com/developers/docs/resources/guild#get-guild-widget-image
        """

    async def get_guild_welcome_screen(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> WelcomeScreen:
        """Get guild welcome screen.

        see https://discord.com/developers/docs/resources/guild#get-guild-welcome-screen
        """

    async def modify_guild_welcome_screen(
        self,
        *,
        guild_id: SnowflakeType,
        enabled: MissingOrNullable[bool] = ...,
        welcome_channels: MissingOrNullable[list[WelcomeScreenChannel]] = ...,
        description: MissingOrNullable[str] = ...,
        reason: str | None = ...,
    ) -> WelcomeScreen:
        """Modify guild welcome screen.

        see https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen
        """

    async def get_guild_onboarding(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> GuildOnboarding:
        """Get guild onboarding.

        see https://discord.com/developers/docs/resources/guild#get-guild-onboarding
        """

    async def modify_guild_onboarding(
        self,
        *,
        guild_id: SnowflakeType,
        prompts: Missing[list[OnboardingPrompt]] = ...,
        default_channel_ids: Missing[list[Snowflake]] = ...,
        enabled: Missing[bool] = ...,
        mode: Missing[OnboardingMode] = ...,
        reason: str | None = ...,
    ) -> GuildOnboarding:
        """Modify guild onboarding.

        see https://discord.com/developers/docs/resources/guild#modify-guild-onboarding
        """

    async def list_voice_regions(
        self,
    ) -> list[VoiceRegion]:
        """List voice regions.

        see https://discord.com/developers/docs/resources/voice#list-voice-regions
        """

    async def get_current_user_voice_state(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> VoiceState:
        """Get current user voice state.

        see https://discord.com/developers/docs/resources/voice#get-current-user-voice-state
        """

    async def get_user_voice_state(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType,
    ) -> VoiceState:
        """Get user voice state.

        see https://discord.com/developers/docs/resources/voice#get-user-voice-state
        """

    async def modify_current_user_voice_state(
        self,
        *,
        guild_id: SnowflakeType,
        channel_id: Missing[SnowflakeType] = ...,
        suppress: Missing[bool] = ...,
        request_to_speak_timestamp: MissingOrNullable[datetime] = ...,
    ) -> None:
        """Modify current user voice state.

        see https://discord.com/developers/docs/resources/voice#modify-current-user-voice-state
        """

    async def modify_user_voice_state(
        self,
        *,
        guild_id: SnowflakeType,
        user_id: SnowflakeType,
        channel_id: SnowflakeType | None = ...,
        suppress: bool | None = ...,
    ) -> None:
        """Modify user voice state.

        see https://discord.com/developers/docs/resources/voice#modify-user-voice-state
        """

    async def list_scheduled_events_for_guild(
        self,
        *,
        guild_id: SnowflakeType,
        with_user_count: bool | None = ...,
    ) -> list[GuildScheduledEvent]:
        """List scheduled events for guild.

        see https://discord.com/developers/docs/resources/guild-scheduled-event#list-scheduled-events-for-guild
        """

    async def create_guild_schedule_event(
        self,
        *,
        guild_id: SnowflakeType,
        channel_id: Snowflake | None = ...,
        entity_metadata: GuildScheduledEventEntityMetadata | None = ...,
        name: str,
        privacy_level: GuildScheduledEventPrivacyLevel,
        scheduled_start_time: datetime,
        scheduled_end_time: datetime | None = ...,
        description: str | None = ...,
        entity_type: GuildScheduledEventEntityType,
        image: str | None = ...,
        recurrence_rule: RecurrenceRule | None = ...,
        reason: str | None = ...,
    ) -> GuildScheduledEvent:
        """Create guild scheduled event.

        see https://discord.com/developers/docs/resources/guild-scheduled-event#create-guild-scheduled-event
        """

    async def get_guild_scheduled_event(
        self,
        *,
        guild_id: SnowflakeType,
        event_id: SnowflakeType,
        with_user_count: bool | None = ...,
    ) -> GuildScheduledEvent:
        """Get guild scheduled event.

        see https://discord.com/developers/docs/resources/guild-scheduled-event#get-guild-scheduled-event
        """

    async def modify_guild_scheduled_event(
        self,
        *,
        guild_id: SnowflakeType,
        event_id: SnowflakeType,
        channel_id: MissingOrNullable[Snowflake] = ...,
        entity_metadata: MissingOrNullable[GuildScheduledEventEntityMetadata] = ...,
        name: Missing[str] = ...,
        privacy_level: Missing[GuildScheduledEventPrivacyLevel] = ...,
        scheduled_start_time: Missing[datetime] = ...,
        scheduled_end_time: Missing[datetime] = ...,
        description: MissingOrNullable[str] = ...,
        entity_type: Missing[GuildScheduledEventEntityType] = ...,
        status: Missing[GuildScheduledEventStatus] = ...,
        image: Missing[str] = ...,
        recurrence_rule: MissingOrNullable[RecurrenceRule] = ...,
        reason: str | None = ...,
    ) -> GuildScheduledEvent:
        """Modify guild scheduled event.

        see https://discord.com/developers/docs/resources/guild-scheduled-event#modify-guild-scheduled-event
        """

    async def delete_guild_scheduled_event(
        self,
        *,
        guild_id: SnowflakeType,
        event_id: SnowflakeType,
    ) -> None:
        """Delete guild scheduled event.

        see https://discord.com/developers/docs/resources/guild-scheduled-event#delete-guild-scheduled-event
        """

    async def get_guild_scheduled_event_users(
        self,
        *,
        guild_id: SnowflakeType,
        event_id: SnowflakeType,
        limit: int | None = ...,
        with_member: bool | None = ...,
        before: SnowflakeType | None = ...,
        after: SnowflakeType | None = ...,
    ) -> list[GuildScheduledEventUser]:
        """Get guild scheduled event users.

        see https://discord.com/developers/docs/resources/guild-scheduled-event#get-guild-scheduled-event-users
        """

    async def get_guild_template(
        self,
        *,
        template_code: str,
    ) -> GuildTemplate:
        """Get guild template.

        see https://discord.com/developers/docs/resources/guild-template#get-guild-template
        """

    async def create_guild_from_guild_template(
        self,
        *,
        template_code: str,
        name: str,
        icon: str | None = ...,
    ) -> Guild:
        """https://discord.com/developers/docs/resources/guild-template"""

    async def get_guild_templates(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> list[GuildTemplate]:
        """Get guild templates.

        see https://discord.com/developers/docs/resources/guild-template#get-guild-templates
        """

    async def create_guild_template(
        self,
        *,
        guild_id: SnowflakeType,
        name: str,
        description: MissingOrNullable[str] = ...,
    ) -> GuildTemplate:
        """Create guild template.

        see https://discord.com/developers/docs/resources/guild-template#create-guild-template
        """

    async def sync_guild_template(
        self,
        *,
        guild_id: SnowflakeType,
        template_code: str,
    ) -> GuildTemplate:
        """Sync guild template.

        see https://discord.com/developers/docs/resources/guild-template#sync-guild-template
        """

    async def modify_guild_template(
        self,
        *,
        guild_id: SnowflakeType,
        template_code: str,
        name: Missing[str] = ...,
        description: MissingOrNullable[str] = ...,
    ) -> GuildTemplate:
        """Modify guild template.

        see https://discord.com/developers/docs/resources/guild-template#modify-guild-template
        """

    async def delete_guild_template(
        self,
        *,
        guild_id: SnowflakeType,
        template_code: str,
    ) -> GuildTemplate:
        """Delete guild template.

        see https://discord.com/developers/docs/resources/guild-template#delete-guild-template
        """

    async def get_invite(
        self,
        *,
        invite_code: str,
        with_counts: bool | None = ...,
        with_expiration: bool | None = ...,
        guild_scheduled_event_id: SnowflakeType | None = ...,
    ) -> Invite:
        """Get invite.

        see https://discord.com/developers/docs/resources/invite#get-invite
        """

    async def delete_invite(
        self,
        *,
        invite_code: str,
        reason: str | None = ...,
    ) -> Invite:
        """Delete invite.

        see https://discord.com/developers/docs/resources/invite#delete-invite
        """

    async def get_answer_voters(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
        answer_id: int,
        after: SnowflakeType | None = ...,
        limit: int | None = ...,
    ) -> AnswerVoters:
        """Get answer voters.

        see https://discord.com/developers/docs/resources/poll#get-answer-voters
        """

    async def end_poll(
        self,
        *,
        channel_id: SnowflakeType,
        message_id: SnowflakeType,
    ) -> MessageGet:
        """End poll.

        see https://discord.com/developers/docs/resources/poll#end-poll
        """

    async def list_SKUs(
        self,
        *,
        application_id: SnowflakeType,
    ) -> list[SKU]:
        """List SKUs.

        see https://discord.com/developers/docs/resources/sku#list-skus
        """

    async def create_stage_instance(
        self,
        *,
        channel_id: SnowflakeType,
        topic: str,
        privacy_level: StagePrivacyLevel | None = ...,
        send_start_notification: bool | None = ...,
        guild_scheduled_event_id: SnowflakeType | None = ...,
        reason: str | None = ...,
    ) -> StageInstance:
        """Create stage instance.

        see https://discord.com/developers/docs/resources/stage-instance#create-stage-instance
        """

    async def get_stage_instance(
        self,
        *,
        channel_id: SnowflakeType,
    ) -> StageInstance:
        """Get stage instance.

        see https://discord.com/developers/docs/resources/stage-instance#get-stage-instance
        """

    async def modify_stage_instance(
        self,
        *,
        channel_id: SnowflakeType,
        topic: str | None = ...,
        privacy_level: StagePrivacyLevel | None = ...,
        reason: str | None = ...,
    ) -> StageInstance:
        """Modify stage instance.

        see https://discord.com/developers/docs/resources/stage-instance#modify-stage-instance
        """

    async def delete_stage_instance(
        self,
        *,
        channel_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Delete stage instance.

        see https://discord.com/developers/docs/resources/stage-instance#delete-stage-instance
        """

    async def get_sticker(
        self,
        *,
        sticker_id: SnowflakeType,
    ) -> Sticker:
        """Get sticker.

        see https://discord.com/developers/docs/resources/sticker#get-sticker
        """

    async def list_nitro_sticker_packs(
        self,
    ) -> StickerPacksResponse:
        """List sticker packs.

        see https://discord.com/developers/docs/resources/sticker#list-sticker-packs
        """

    async def get_sticker_packs(
        self,
        *,
        pack_id: SnowflakeType,
    ) -> StickerPack:
        """Get sticker pack.

        see https://discord.com/developers/docs/resources/sticker#get-sticker-pack
        """

    async def list_guild_stickers(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> list[Sticker]:
        """List guild stickers.

        see https://discord.com/developers/docs/resources/sticker#list-guild-stickers
        """

    async def get_guild_sticker(
        self,
        *,
        guild_id: SnowflakeType,
        sticker_id: SnowflakeType,
    ) -> Sticker:
        """Get guild sticker.

        see https://discord.com/developers/docs/resources/sticker#get-guild-sticker
        """

    async def create_guild_sticker(
        self,
        *,
        guild_id: SnowflakeType,
        name: str,
        description: str,
        tags: str,
        file: File,
        reason: str | None = ...,
    ) -> Sticker:
        """Create guild sticker.

        see https://discord.com/developers/docs/resources/sticker#create-guild-sticker
        """

    async def modify_guild_sticker(
        self,
        *,
        guild_id: SnowflakeType,
        sticker_id: SnowflakeType,
        name: Missing[str] = ...,
        description: MissingOrNullable[str] = ...,
        tags: Missing[str] = ...,
        reason: str | None = ...,
    ) -> Sticker:
        """Modify guild sticker.

        see https://discord.com/developers/docs/resources/sticker#modify-guild-sticker
        """

    async def delete_guild_sticker(
        self,
        *,
        guild_id: SnowflakeType,
        sticker_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Delete guild sticker.

        see https://discord.com/developers/docs/resources/sticker#delete-guild-sticker
        """

    async def list_SKU_subscriptions(
        self,
        *,
        sku_id: SnowflakeType,
        before: SnowflakeType | None = ...,
        after: SnowflakeType | None = ...,
        limit: int | None = ...,
        user_id: SnowflakeType | None = ...,
    ) -> list[Subscription]:
        """List SKU subscriptions.

        see https://discord.com/developers/docs/resources/subscription#list-sku-subscriptions
        """

    async def get_SKU_subscription(
        self,
        *,
        sku_id: SnowflakeType,
        subscription_id: SnowflakeType,
    ) -> Subscription:
        """Get SKU subscription.

        see https://discord.com/developers/docs/resources/subscription#get-sku-subscription
        """

    async def get_current_user(
        self,
    ) -> User:
        """Get current user.

        see https://discord.com/developers/docs/resources/user#get-current-user
        """

    async def get_user(
        self,
        *,
        user_id: SnowflakeType,
    ) -> User:
        """Get user.

        see https://discord.com/developers/docs/resources/user#get-user
        """

    async def modify_current_user(
        self,
        *,
        username: Missing[str] = ...,
        avatar: MissingOrNullable[str] = ...,
        banner: MissingOrNullable[str] = ...,
    ) -> User:
        """Modify current user.

        see https://discord.com/developers/docs/resources/user#modify-current-user
        """

    async def get_current_user_guilds(
        self,
        *,
        access_token: str,
        before: SnowflakeType | None = ...,
        after: SnowflakeType | None = ...,
        limit: int | None = ...,
        with_counts: bool | None = ...,
    ) -> list[CurrentUserGuild]:
        """Get current user guilds.

        see https://discord.com/developers/docs/resources/user#get-current-user-guilds
        """

    async def get_current_user_guild_member(
        self,
        *,
        guild_id: SnowflakeType,
        access_token: str,
    ) -> GuildMember:
        """Get current user guild member.

        see https://discord.com/developers/docs/resources/user#get-current-user-guild-member
        """

    async def leave_guild(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> None:
        """Leave guild.

        see https://discord.com/developers/docs/resources/user#leave-guild
        """

    async def create_DM(
        self,
        *,
        recipient_id: SnowflakeType,
    ) -> Channel:
        """Create DM.

        see https://discord.com/developers/docs/resources/user#create-dm
        """

    async def create_group_DM(
        self,
        *,
        access_tokens: list[str],
        nicks: dict[SnowflakeType, str],
    ) -> Channel:
        """Create group DM.

        see https://discord.com/developers/docs/resources/user#create-group-dm
        """

    async def get_user_connections(
        self,
        *,
        access_token: str,
    ) -> list[Connection]:
        """Get current user connections.

        see https://discord.com/developers/docs/resources/user#get-current-user-connections
        """

    async def get_user_application_role_connection(
        self,
        *,
        application_id: SnowflakeType,
        access_token: str,
    ) -> ApplicationRoleConnection:
        """Get current user application role connection.

        see https://discord.com/developers/docs/resources/user#get-current-user-application-role-connection
        """

    async def update_user_application_role_connection(
        self,
        *,
        application_id: SnowflakeType,
        access_token: str,
        platform_name: str | None = ...,
        platform_username: str | None = ...,
        metadata: dict[str, str] | None = ...,
    ) -> ApplicationRoleConnection:
        """Update current user application role connection.

        see https://discord.com/developers/docs/resources/user#update-current-user-application-role-connection
        """

    async def create_webhook(
        self,
        *,
        channel_id: SnowflakeType,
        name: str,
        avatar: MissingOrNullable[str] = ...,
        reason: str | None = ...,
    ) -> Webhook:
        """Create webhook.

        see https://discord.com/developers/docs/resources/webhook#create-webhook
        """

    async def get_channel_webhooks(
        self,
        *,
        channel_id: SnowflakeType,
    ) -> list[Webhook]:
        """Get channel webhooks.

        see https://discord.com/developers/docs/resources/webhook#get-channel-webhooks
        """

    async def get_guild_webhooks(
        self,
        *,
        guild_id: SnowflakeType,
    ) -> list[Webhook]:
        """Get guild webhooks.

        see https://discord.com/developers/docs/resources/webhook#get-guild-webhooks
        """

    async def get_webhook(
        self,
        *,
        webhook_id: SnowflakeType,
    ) -> Webhook:
        """Get webhook.

        see https://discord.com/developers/docs/resources/webhook#get-webhook
        """

    async def get_webhook_with_token(
        self,
        *,
        webhook_id: SnowflakeType,
        token: str,
    ) -> Webhook:
        """Get webhook with token.

        see https://discord.com/developers/docs/resources/webhook#get-webhook-with-token
        """

    async def modify_webhook(
        self,
        *,
        webhook_id: SnowflakeType,
        name: Missing[str] = ...,
        avatar: MissingOrNullable[str] = ...,
        channel_id: Missing[SnowflakeType] = ...,
        reason: str | None = ...,
    ) -> Webhook:
        """Modify webhook.

        see https://discord.com/developers/docs/resources/webhook#modify-webhook
        """

    async def modify_webhook_with_token(
        self,
        *,
        webhook_id: SnowflakeType,
        token: str,
        name: Missing[str] = ...,
        avatar: MissingOrNullable[str] = ...,
    ) -> Webhook:
        """Modify webhook with token.

        see https://discord.com/developers/docs/resources/webhook#modify-webhook-with-token
        """

    async def delete_webhook(
        self,
        *,
        webhook_id: SnowflakeType,
        reason: str | None = ...,
    ) -> None:
        """Delete webhook.

        see https://discord.com/developers/docs/resources/webhook#delete-webhook
        """

    async def delete_webhook_with_token(
        self,
        *,
        webhook_id: SnowflakeType,
        token: str,
    ) -> None:
        """Delete webhook with token.

        see https://discord.com/developers/docs/resources/webhook#delete-webhook-with-token
        """

    async def execute_webhook(
        self,
        *,
        webhook_id: SnowflakeType,
        token: str,
        wait: bool | None = ...,
        thread_id: SnowflakeType | None = ...,
        with_components: bool | None = ...,
        content: str | None = ...,
        username: str | None = ...,
        avatar_url: str | None = ...,
        tts: bool | None = ...,
        embeds: list[Embed] | None = ...,
        allowed_mentions: AllowedMention | None = ...,
        components: list[Component] | None = ...,
        files: list[File] | None = ...,
        attachments: list[AttachmentSend] | None = ...,
        flags: int | None = ...,
        thread_name: str | None = ...,
        applied_tags: list[SnowflakeType] | None = ...,
        poll: PollRequest | None = ...,
    ) -> MessageGet | None:
        """Execute webhook.

        see https://discord.com/developers/docs/resources/webhook#execute-webhook
        """

    async def execute_slack_compatible_webhook(
        self,
        *,
        webhook_id: SnowflakeType,
        token: str,
        payload: dict[str, Any],
        thread_id: SnowflakeType | None = ...,
        wait: bool | None = ...,
    ) -> MessageGet | None:
        """Execute Slack-compatible webhook.

        see https://discord.com/developers/docs/resources/webhook#execute-slack-compatible-webhook
        """

    async def execute_github_compatible_webhook(
        self,
        *,
        webhook_id: SnowflakeType,
        token: str,
        payload: dict[str, Any],
        thread_id: SnowflakeType | None = ...,
        wait: bool | None = ...,
    ) -> MessageGet | None:
        """Execute GitHub-compatible webhook.

        see https://discord.com/developers/docs/resources/webhook#execute-github-compatible-webhook
        """

    async def get_webhook_message(
        self,
        *,
        webhook_id: SnowflakeType,
        token: str,
        message_id: SnowflakeType,
        thread_id: SnowflakeType | None = ...,
    ) -> MessageGet:
        """Get webhook message.

        see https://discord.com/developers/docs/resources/webhook#get-webhook-message
        """

    async def edit_webhook_message(
        self,
        *,
        webhook_id: SnowflakeType,
        webhook_token: str,
        message_id: SnowflakeType,
        thread_id: SnowflakeType | None = ...,
        with_components: bool | None = ...,
        content: MissingOrNullable[str] = ...,
        embeds: MissingOrNullable[list[Embed]] = ...,
        flags: MissingOrNullable[MessageFlag] = ...,
        allowed_mentions: MissingOrNullable[AllowedMention] = ...,
        components: MissingOrNullable[list[Component]] = ...,
        files: Missing[list[File]] = ...,
        attachments: MissingOrNullable[list[AttachmentSend]] = ...,
        poll: MissingOrNullable[PollRequest] = ...,
    ) -> MessageGet:
        """Edit webhook message.

        see https://discord.com/developers/docs/resources/webhook#edit-webhook-message
        """

    async def delete_webhook_message(
        self,
        *,
        webhook_id: SnowflakeType,
        token: str,
        message_id: SnowflakeType,
        thread_id: SnowflakeType | None = ...,
    ) -> None:
        """Delete webhook message.

        see https://discord.com/developers/docs/resources/webhook#delete-webhook-message
        """

    async def get_gateway(
        self,
    ) -> Gateway:
        """Get gateway.

        see https://discord.com/developers/docs/events/gateway#get-gateway
        """

    async def get_gateway_bot(
        self,
    ) -> GatewayBot:
        """Get gateway bot.

        see https://discord.com/developers/docs/events/gateway#get-gateway-bot
        """

    async def get_current_bot_application_information(
        self,
    ) -> Application:
        """Get current bot application information.

        see https://discord.com/developers/docs/topics/oauth2#get-current-bot-application-information
        """

    async def get_current_authorization_information(
        self,
        *,
        access_token: str,
    ) -> AuthorizationResponse:
        """Get current authorization information.

        see https://discord.com/developers/docs/topics/oauth2#get-current-authorization-information
        """
