import type { AgentSession } from '@earendil-works/pi-coding-agent'; export type EmbeddedRunIdentity = { conversationId: string; transcriptId: string; runId: string; }; export type EmbeddedRunHandle = EmbeddedRunIdentity & { session: AgentSession; abort: () => Promise; }; export declare class EmbeddedRunConflictError extends Error { readonly conversationId: string; readonly activeRunId: string; constructor(conversationId: 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 byConversationId; acquire(identity: EmbeddedRunIdentity): EmbeddedRunLease; getByConversationId(conversationId: string): EmbeddedRunHandle | undefined; abortByConversationId(conversationId: string): Promise; steerByConversationId(conversationId: string, text: string): Promise; size(): number; } export declare function acquireEmbeddedRunLease(identity: EmbeddedRunIdentity): EmbeddedRunLease; export declare function getEmbeddedRunByConversationId(conversationId: string): EmbeddedRunHandle | undefined; export declare function abortEmbeddedRun(conversationId: string): Promise; export declare function queueEmbeddedSteer(conversationId: string, text: string): Promise;