import type { TextChannel, ThreadChannel } from 'discord.js'; import { MessageDraft } from './streaming.js'; import type { SendQueue } from '@openacp/plugin-sdk'; /** * Discord-specific draft manager. * * Note: Discord's MessageDraft has platform-specific features (truncation, * message splitting, stripPattern) that diverge significantly from the shared * Draft primitive. We keep the platform-specific MessageDraft for streaming * while following the same naming convention as other migrated classes. */ export declare class DiscordDraftManager { private sendQueue; private drafts; private finalizedDrafts; private textBuffers; constructor(sendQueue: SendQueue); getOrCreate(sessionId: string, thread: TextChannel | ThreadChannel): MessageDraft; hasDraft(sessionId: string): boolean; getDraft(sessionId: string): MessageDraft | undefined; appendText(sessionId: string, text: string): void; /** * Finalize the current draft. * If isAssistant is true, detects action patterns in the accumulated text and sends * action buttons as a follow-up message. */ finalize(sessionId: string, thread?: TextChannel | ThreadChannel, isAssistant?: boolean): Promise; cleanup(sessionId: string): void; }