import type { OpencodeClient as SdkOpencodeClient } from '@opencode-ai/sdk'; import type { Message, Part } from '@opencode-ai/sdk'; import type { PermissionResponseOptions, ShellExecutionResult } from './client.js'; export interface MessagesDeps { getClient: () => SdkOpencodeClient | null; ensureDirectoryEventStream: (directory: string) => Promise; normalizeDirectory: (directory?: string) => string | undefined; } export declare class MessagesManager { private deps; constructor(deps: MessagesDeps); private getClient; private resolveModelOption; sendMessage(sessionId: string, text: string, options?: { providerId?: string; modelId?: string; agent?: string; variant?: string; directory?: string; }): Promise<{ info: Message; parts: Part[]; }>; sendMessageParts(sessionId: string, parts: Array<{ type: 'text'; text: string; } | { type: 'file'; mime: string; url: string; filename?: string; }>, options?: { providerId?: string; modelId?: string; agent?: string; variant?: string; directory?: string; }, messageId?: string): Promise<{ info: Message; parts: Part[]; }>; sendMessageAsync(sessionId: string, text: string, options?: { providerId?: string; modelId?: string; agent?: string; variant?: string; directory?: string; }): Promise; sendMessagePartsAsync(sessionId: string, parts: Array<{ type: 'text'; text: string; } | { type: 'file'; mime: string; url: string; filename?: string; }>, options?: { providerId?: string; modelId?: string; agent?: string; variant?: string; directory?: string; }): Promise; sendCommand(sessionId: string, command: string, args: string, options?: { directory?: string; }): Promise<{ info: Message; parts: Part[]; }>; sendShellCommand(sessionId: string, command: string, agent: string, options?: { providerId?: string; modelId?: string; directory?: string; }): Promise; summarizeSession(sessionId: string, providerId: string, modelId: string): Promise; revertMessage(sessionId: string, messageId: string): Promise; abortSession(sessionId: string): Promise; private buildPermissionDirectoryCandidates; respondToPermission(sessionId: string, permissionId: string, allow: boolean, remember?: boolean, options?: PermissionResponseOptions): Promise<{ ok: boolean; expired?: boolean; }>; replyQuestion(requestId: string, answers: string[][]): Promise<{ ok: boolean; expired?: boolean; }>; rejectQuestion(requestId: string): Promise<{ ok: boolean; expired?: boolean; }>; } //# sourceMappingURL=messages.d.ts.map