/** * Wechaty Puppet for Discord * * Uses discord.js to implement a Discord bot Puppet adapter. * Maps Discord concepts to Wechaty: * - Discord Guild text channel -> Wechaty Room * - Discord User -> Wechaty Contact * - Discord DM Channel -> Private chat * - Discord Bot -> Self/login user */ import { Puppet } from '@juzi/wechaty-puppet'; import type { PuppetOptions } from '@juzi/wechaty-puppet'; import { type MessageSendTextOptions } from '@juzi/wechaty-puppet/types'; import type { Message as MessagePayload, UrlLink as UrlLinkPayload, MiniProgram as MiniProgramPayload, Location as LocationPayload, Post as PostPayload, Contact as ContactPayload, Room as RoomPayload, RoomMember as RoomMemberPayload, Friendship as FriendshipPayload, RoomInvitation as RoomInvitationPayload } from '@juzi/wechaty-puppet/payloads'; import type { Room as RoomQueryFilter } from '@juzi/wechaty-puppet/filters'; import type { FileBoxInterface } from '@juzi/file-box'; export interface PuppetDiscordOptions extends PuppetOptions { token: string; /** * Optional HTTP/HTTPS proxy URL for all Discord traffic (REST + WebSocket). * Credentials can be embedded directly: 'http://user:pass@host:port' */ proxyUrl?: string; /** * Optional Proxy-Authorization header value. * Use when credentials cannot be embedded in proxyUrl. * Format: 'Basic ' or 'Bearer ' */ proxyToken?: string; } export declare class PuppetDiscord extends Puppet { static readonly VERSION = "0.0.1"; readonly options: PuppetDiscordOptions; private clientManager; private messageDedupeManager; private cacheManager; private _selfId?; constructor(options: PuppetDiscordOptions); onStart(): Promise; onStop(): Promise; private initializeBotInfo; private handleDiscordMessage; private _processDiscordMessage; private ensureContact; private ensureRoom; private convertDiscordMessageToWechaty; private cacheSentTextMessage; private cacheSentFileMessage; messageRawPayload(messageId: string): Promise; messageRawPayloadParser(rawPayload: any): Promise; messageSendText(conversationId: string, text: string, options?: MessageSendTextOptions): Promise; private fetchDiscordMessage; messageSendFile(conversationId: string, file: FileBoxInterface): Promise; private isAudioFileName; private hasAudioExtension; private mimeToExt; private extToMime; messageSendUrl(conversationId: string, urlLinkPayload: UrlLinkPayload): Promise; messageSendMiniProgram(conversationId: string, miniProgramPayload: MiniProgramPayload): Promise; messageSendPost(conversationId: string, postPayload: PostPayload): Promise; messageSendContact(conversationId: string, contactId: string): Promise; messageSendLocation(conversationId: string, locationPayload: LocationPayload): Promise; messageImage(messageId: string, _imageType: any): Promise; messageFile(messageId: string): Promise; messageForward(conversationId: string, messageId: string | string[]): Promise; messageRecall(messageId: string): Promise; conversationReadMark(conversationId: string, hasRead?: boolean): Promise; messageUrl(messageId: string): Promise; messageMiniProgram(messageId: string): Promise; messageLocation(messageId: string): Promise; messageContact(messageId: string): Promise; contactRawPayload(contactId: string): Promise; contactRawPayloadParser(rawPayload: any): Promise; contactList(): Promise; contactSearch(query?: string | any, searchIdList?: string[]): Promise; contactAlias(contactId: string): Promise; contactAlias(contactId: string, alias: string | null): Promise; contactAvatar(contactId: string): Promise; contactAvatar(contactId: string, file: FileBoxInterface): Promise; contactPhone(contactId: string, phoneList: string[]): Promise; roomRawPayload(roomId: string): Promise; roomRawPayloadParser(rawPayload: any): Promise; roomList(): Promise; roomSearch(query?: RoomQueryFilter): Promise; roomTopic(roomId: string): Promise; roomTopic(roomId: string, topic: string): Promise; roomAvatar(roomId: string, _file?: FileBoxInterface): Promise; roomAnnounce(roomId: string): Promise; roomAnnounce(roomId: string, text: string): Promise; roomCreate(contactIdList: string[], topic?: string): Promise; roomAdd(roomId: string, contactId: string, inviteOnly?: boolean): Promise; roomDel(roomId: string, contactId: string | string[]): Promise; roomQuit(roomId: string): Promise; roomMemberRawPayload(roomId: string, contactId: string): Promise; roomMemberRawPayloadParser(rawPayload: any): Promise; roomMemberList(roomId: string): Promise; friendshipRawPayload(friendshipId: string): Promise; friendshipRawPayloadParser(rawPayload: any): Promise; friendshipAccept(friendshipId: string): Promise; friendshipAdd(contactId: string, option?: any): Promise; friendshipSearchPhone(phone: string): Promise; friendshipSearchHandle(handle: string): Promise; roomInvitationRawPayload(roomInvitationId: string): Promise; roomInvitationRawPayloadParser(rawPayload: any): Promise; roomInvitationAccept(roomInvitationId: string): Promise; } //# sourceMappingURL=puppet-discord.d.ts.map