import type { AcpContentBlock, AcpMcpServer, AcpPermissionOutcome, AcpPermissionRequest, AcpPromptResponse } from '../acp/acp-types.js'; import type { RuntimeEvent } from '../runtime-events.js'; import { HermesProcess } from './hermes-process.js'; import { type HermesSessionIdentity, type HermesSessionRecord } from './hermes-session-store.js'; export { HermesSessionOwnershipError } from './hermes-session-store.js'; export interface HermesRuntimeOptions { rootDir: string; command?: string; args?: string[]; requestTimeoutMs?: number; env?: NodeJS.ProcessEnv; onEvent?: (agentId: string, event: RuntimeEvent) => void; onPermissionRequest?: (agentId: string, request: AcpPermissionRequest) => AcpPermissionOutcome | Promise; onStderr?: (agentId: string, line: string) => void; } export interface HermesAgentOptions { agentId: string; profile?: string; env?: NodeJS.ProcessEnv; } export interface HermesRunIdentity extends HermesSessionIdentity { mcpServers?: AcpMcpServer[]; } export declare class HermesRuntime { #private; constructor(options: HermesRuntimeOptions); ensureAgent(options: HermesAgentOptions): Promise; openSession(identity: HermesRunIdentity): Promise; restoreSession(identity: HermesRunIdentity): Promise; getSession(agentId: string, runId: string): HermesSessionRecord | null; promptRun(agentId: string, runId: string, prompt: AcpContentBlock[], options?: { signal?: AbortSignal; }): Promise; cancelRun(agentId: string, runId: string): Promise; closeRun(agentId: string, runId: string): Promise; stopAgent(agentId: string): Promise; stopAll(): Promise; }