/**
 * Runtime controller — the worker-side translator between `AgentCommand`s
 * coming from the main thread and the embedded `EmbeddedAgentRuntime`.
 * Owns per-request `AbortController`s and the request-generation counter
 * that detaches late host tool results after an abort.
 */
import { type AgentCommand, type AgentEventListener, type EmbeddedAgentRuntime } from '../../contracts/agent-api.js';
import type { AgentSnapshot } from '../../contracts/agent-snapshot.js';
import { type HostToolExecutor } from '../../contracts/host-tool-api.js';
/** Worker-side surface that consumes commands and re-emits runtime events. */
export interface EmbeddedAgentDispatch {
    dispose(): void;
    getSnapshot(): AgentSnapshot;
    handleCommand(command: AgentCommand): Promise<void>;
    subscribe(listener: AgentEventListener): () => void;
}
/** Wiring required to stand up a controller. */
export interface EmbeddedAgentDispatchOptions {
    hostToolExecutor: HostToolExecutor;
    runtime: EmbeddedAgentRuntime;
}
/** Build a controller bound to one runtime + client adapter pair. */
export declare function createEmbeddedAgentDispatch(options: EmbeddedAgentDispatchOptions): EmbeddedAgentDispatch;
//# sourceMappingURL=dispatch.d.ts.map