import type { AgentSession } from '@earendil-works/pi-coding-agent'; export type EmbeddedRunIdentity = { sessionKey: string; sessionId: string; runId: string; }; export type EmbeddedRunHandle = EmbeddedRunIdentity & { session: AgentSession; abort: () => Promise; }; export declare class EmbeddedRunConflictError extends Error { readonly sessionKey: string; readonly activeRunId: string; constructor(sessionKey: string, activeRunId: string); } export type EmbeddedRunLease = { signal: AbortSignal; attach(session: AgentSession, abort: () => Promise): Promise; release(): void; }; /** Owns one process-local execution lease per session while leaving steer/abort on the control plane. */ export declare class EmbeddedRunRegistry { private readonly bySessionKey; acquire(identity: EmbeddedRunIdentity): EmbeddedRunLease; getBySessionKey(sessionKey: string): EmbeddedRunHandle | undefined; abortBySessionKey(sessionKey: string): Promise; steerBySessionKey(sessionKey: string, text: string): Promise; size(): number; } export declare function acquireEmbeddedRunLease(identity: EmbeddedRunIdentity): EmbeddedRunLease; export declare function getEmbeddedRunBySessionKey(sessionKey: string): EmbeddedRunHandle | undefined; export declare function abortEmbeddedRun(sessionKey: string): Promise; export declare function queueEmbeddedSteer(sessionKey: string, text: string): Promise;