import { Context, Effect, Layer } from "effect"; import { AcpConnectionError, AuthRequiredError } from "./schema.js"; import { type AgentConnection } from "./acp-types.js"; import { EventHub } from "./event-hub.js"; import { WriteQueue } from "./write-queue.js"; export interface ConnectionManagerStats { connectedSessions: number; promptingSessions: number; terminals: number; pendingPermissions: number; bySession: ReadonlyArray<{ sessionId: string; prompting: boolean; currentAssistantTurnId: string | null; terminals: number; pendingPermissions: number; }>; } declare const ConnectionManager_base: Context.TagClass>) => Effect.Effect<{ agentSessionId: string; }, AcpConnectionError | AuthRequiredError>; readonly disconnect: (sessionId: string) => Effect.Effect; readonly cancel: (sessionId: string) => Effect.Effect; readonly get: (sessionId: string) => Effect.Effect; readonly isConnected: (sessionId: string) => Effect.Effect; readonly connectedSessionIds: () => ReadonlySet; readonly promptingSessionIds: () => ReadonlySet; readonly getPromptState: (sessionId: string) => { prompting: boolean; assistantTurnId: string | null; }; readonly setPromptState: (sessionId: string, prompting: boolean, assistantTurnId: string | null, expectedAgentSessionId?: string) => Effect.Effect; readonly respondToPermission: (sessionId: string, requestId: string, optionId: string) => Effect.Effect; readonly getAvailableCommands: (sessionId: string) => Effect.Effect>, AcpConnectionError>; readonly getConfigOptions: (sessionId: string) => Effect.Effect>, AcpConnectionError>; readonly setConfigOption: (sessionId: string, configId: string, value: string) => Effect.Effect>, AcpConnectionError>; readonly getModes: (sessionId: string) => Effect.Effect | null, AcpConnectionError>; readonly setMode: (sessionId: string, modeId: string) => Effect.Effect | null, AcpConnectionError>; readonly listAgentSessions: (sessionId: string, cwd?: string) => Effect.Effect; readonly stats: () => ConnectionManagerStats; }>; export declare class ConnectionManager extends ConnectionManager_base { static readonly layer: Layer.Layer; } export {};