import { type Collection, type Attachment } from "discord.js"; import type { MessagingBot, ConversationEvent, MessagingEventHandler, MessagingInfo } from "../../adapter.js"; export type { DiscordEvent } from "./types.js"; export declare class DiscordMessagingBot implements MessagingBot { private client; private handler; private token; private workingDir; private botUserId; private queues; private startupTime; private channels; private users; constructor(handler: MessagingEventHandler, config: { token: string; workingDir: string; }); start(): Promise; postMessage(channel: string, text: string): Promise; updateMessage(channel: string, ts: string, text: string): Promise; enqueueEvent(event: ConversationEvent): boolean; getMessagingInfo(): MessagingInfo; updateMessageRaw(channelId: string, messageId: string, text: string): Promise; postReply(channelId: string, replyToId: string, text: string): Promise; postInThread(channelId: string, threadOrMessageId: string, text: string): Promise; deleteMessageRaw(channelId: string, messageId: string): Promise; sendTyping(channelId: string): Promise; uploadFile(channelId: string, filePath: string, title?: string): Promise; sendDirectMessage(userId: string, text: string): Promise; postPrivate(_conversationId: string, userId: string, text: string): Promise; getAllChannels(): { id: string; name: string; }[]; getAllUsers(): { id: string; userName: string; displayName: string; }[]; logToFile(channelId: string, entry: object): void; logBotResponse(channelId: string, text: string, ts: string): void; /** * Process attachments from a Discord message. * Downloads files before returning so the agent can read them immediately. */ processAttachments(channelId: string, attachments: Collection, _messageId: string): Promise<{ name: string; localPath: string; }[]>; /** * Download an attachment from URL to local file */ private downloadAttachment; private getQueue; private resolveStopTarget; private loadCachedGuildData; private stripMessagingBotMention; private resolveConversationContext; private createSlashCommandAdapters; private setupEventHandlers; private fetchTextChannel; } //# sourceMappingURL=bot.d.ts.map