import { HARNESS_VERSION } from "@oscharko-dev/keiko-contracts";
import type { Clock } from "@oscharko-dev/keiko-model-gateway";
import type { EventSink, Fingerprinter, IdSource, ModelPort, ToolPort } from "./ports.js";
import { type HarnessLimits, type RunResult, type TaskInput } from "./types.js";
export { HARNESS_VERSION };
export interface AgentConfig {
    readonly model: string;
    readonly workingDirectory: string;
    readonly limits?: Partial<HarnessLimits> | undefined;
    readonly dryRun?: boolean | undefined;
}
export interface HarnessDeps {
    readonly model: ModelPort;
    readonly tools: ToolPort;
    readonly sink: EventSink;
    readonly clock?: Clock | undefined;
    readonly idSource?: IdSource | undefined;
    readonly fingerprinter?: Fingerprinter | undefined;
}
export interface AgentSession {
    readonly runId: string;
    readonly fingerprint: string;
    readonly result: Promise<RunResult>;
    readonly cancel: (reason?: string) => void;
}
export declare function createSession(task: TaskInput, config: AgentConfig, deps: HarnessDeps): AgentSession;
//# sourceMappingURL=session.d.ts.map