import type { BackendMcpServerConfig, SupenDriverOutput, SupenThreadEvent, SupenTurnItem } from '../types.js'; export type DriverTurnLifecycle = { type: 'dispatching'; } | { type: 'started'; turnId: string; } | { type: 'terminal'; turnId: string; }; export type StartDriverSessionInput = { agentId: string; threadId: string; turnId: string; cwd: string; model?: string; collaborationMode?: 'default' | 'plan'; effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh'; permissionMode?: 'default' | 'workspace-write' | 'full-access' | 'custom' | 'read-only'; networkAccess?: boolean; trustedDataHosts?: string[]; env?: Record; writableRoots?: string[]; resume?: string; resumeRequired?: boolean; mcpServers?: Record; systemPromptAppend?: string; turnDeveloperInstructions?: string; onTurnLifecycle?: (event: DriverTurnLifecycle) => void; }; export type DriverMessageAttachment = { type?: 'image' | 'file'; name?: string; filename?: string; path?: string; localPath?: string; mimeType?: string; mime_type?: string; }; export type DriverMessageInput = string | { text: string; attachments?: DriverMessageAttachment[]; }; export interface DriverSession { prepare?(): Promise; send(message: DriverMessageInput): Promise; stream(): AsyncGenerator; close(): void; } export interface BackendDriver { readonly id: string; startThread(input: StartDriverSessionInput): Promise; normalizeOutput?(input: { threadId: string; turnId: string; output: Record; }): SupenDriverOutput[]; normalizeStreamEvent?(input: { threadId: string; turnId: string; event: Record; }): SupenThreadEvent[]; normalizeAssistantBlocks?(input: { threadId: string; turnId: string; blocks: Array>; }): SupenTurnItem[]; normalizeToolResultBlocks?(input: { threadId: string; turnId: string; blocks: Array>; }): SupenTurnItem[]; } //# sourceMappingURL=driver.d.ts.map