import type { AcpBackend, AcpInitializeParams, AcpInitializeResult, AcpPromptParams, AcpSessionParams, AcpPermissionResponseParams, AcpCancelParams, AcpSetModeParams, AcpSessionUpdate } from '@dsh-remote/protocol'; /** Backend-neutral ACP adapter. Implementations must keep state scoped to a connection. */ export interface AcpBackendAdapter { readonly backend: AcpBackend; initialize(params: AcpInitializeParams): Promise; sessionNew(params: AcpSessionParams): Promise<{ sessionId: string; }>; sessionLoad?(params: AcpSessionParams): Promise<{ sessionId: string; }>; prompt(params: AcpPromptParams, emit: (update: AcpSessionUpdate) => Promise): Promise; respondPermission?(params: AcpPermissionResponseParams): Promise; cancel?(params: AcpCancelParams): Promise; setMode?(params: AcpSetModeParams): Promise; close?(): Promise; } export declare class AcpGateway { private readonly adapters; constructor(adapters: AcpBackendAdapter | Iterable); private get; initialize(p: AcpInitializeParams): Promise; sessionNew(p: AcpSessionParams & { backend?: AcpBackend; }): Promise<{ sessionId: string; }>; sessionLoad(p: AcpSessionParams & { backend?: AcpBackend; }): Promise<{ sessionId: string; }>; prompt(p: AcpPromptParams & { backend?: AcpBackend; }, emit: (u: AcpSessionUpdate) => Promise): Promise; respondPermission(p: AcpPermissionResponseParams & { backend?: AcpBackend; }): Promise; cancel(p: AcpCancelParams & { backend?: AcpBackend; }): Promise; setMode(p: AcpSetModeParams & { backend?: AcpBackend; }): Promise; } export interface AcpIdeConfig { id: string; command: string; args?: string[]; cwd?: string; } export declare const DEFAULT_ACP_IDES: readonly AcpIdeConfig[]; /** JSON-RPC stdio bridge for ACP agents (Cursor/Kimi/CodeX). */ export declare class StdioAcpAdapter { private readonly config; readonly backend: AcpBackend; private child?; private nextId; constructor(config: AcpIdeConfig); private ensure; initialize(params: AcpInitializeParams): Promise; sessionNew(params: AcpSessionParams): Promise<{ sessionId: string; }>; sessionLoad(params: AcpSessionParams): Promise<{ sessionId: string; }>; prompt(params: AcpPromptParams, emit: (u: AcpSessionUpdate) => Promise): Promise; cancel(p: AcpCancelParams): Promise; setMode(p: AcpSetModeParams): Promise; respondPermission(p: AcpPermissionResponseParams): Promise; close(): Promise; private call; } //# sourceMappingURL=acp.d.ts.map