import type { AbstractAgent } from "@ag-ui/client"; import type { ConversationStore, AgentSession, ReplyTarget } from "@copilotkit/channels-core"; import type { ThreadMessage, AgentContentPart } from "@copilotkit/channels-ui"; /** * In-memory Teams conversation store. * * Unlike Slack, Teams does not hand the bot a free, queryable history of a * conversation, so the adapter keeps the transcript itself: the listener * records each incoming user message, and the run renderer records the agent's * reply. Each turn builds a fresh AG-UI thread id (the durable history is held * here, not server-side) and seeds the agent with the accumulated transcript. * * The transcript retains a message's multimodal content (an uploaded file's * decoded contents), not just its text, so a follow-up turn can still act on * data the user only sent once. This grows context for long file-bearing * conversations; a production {@link ConversationStore} can cap or summarize it. * * This is the batteries-included default. It is deliberately swappable: a * production deployment that needs the transcript to survive restarts can * implement {@link ConversationStore} against a real datastore and pass it in. */ export declare class TeamsConversationStore implements ConversationStore { readonly seedsInboundTurn = true; private readonly history; /** * Append a user message to the conversation transcript. Accepts plain text or * multimodal content parts (uploaded files); empty content is ignored. */ recordUser(conversationKey: string, content: string | AgentContentPart[]): void; /** Append an assistant message to the conversation transcript. */ recordAssistant(conversationKey: string, content: string): void; /** The accumulated transcript as bot-ui `ThreadMessage`s (backs `thread.getMessages()`). */ getTranscript(conversationKey: string): ThreadMessage[]; private append; getOrCreate(conversationKey: string, _replyTarget: ReplyTarget, makeAgent: (threadId: string) => AbstractAgent): Promise; } //# sourceMappingURL=conversation-store.d.ts.map