import type { ModelPort } from "@oscharko-dev/keiko-harness";
import type { MemoryVaultStore } from "@oscharko-dev/keiko-memory-vault";
import type { RunRequest } from "./run-request.js";
import type { AppliableSnapshot, RunRegistry } from "./runs.js";
import { type EvidencePersistContext } from "./evidence.js";
export interface StartRunResult {
    readonly runId: string;
    readonly fingerprint: string;
}
export interface StartRunOptions {
    readonly runId?: string;
}
interface EngineContext {
    readonly request: RunRequest;
    readonly model: ModelPort;
    readonly registry: RunRegistry;
    readonly evidence?: EvidencePersistContext | undefined;
    readonly memoryVault?: MemoryVaultStore | undefined;
    readonly memoryAuditRedactString?: ((input: string) => string) | undefined;
}
export declare function startRun(ctx: EngineContext, redactReport: (value: unknown) => unknown, options?: StartRunOptions): StartRunResult;
export declare function applyRun(snapshot: AppliableSnapshot, model: ModelPort, modelId: string, redactReport: (value: unknown) => unknown): Promise<unknown>;
export type { EngineContext };
//# sourceMappingURL=run-engine.d.ts.map