import type { EventSink } from "./ports.js";
import type { HarnessEvent, RunManifest } from "./types.js";
export interface EventWriter {
    readonly out: (text: string) => void;
    readonly err: (text: string) => void;
}
export interface ManifestSeed {
    readonly runId: string;
    readonly fingerprint: string;
    readonly harnessVersion: string;
    readonly taskType: RunManifest["taskType"];
    readonly taskInput: RunManifest["taskInput"];
    readonly limits: RunManifest["limits"];
    readonly modelId: string;
    readonly workingDirectory: string;
    readonly dryRun: boolean;
    readonly startedAt: string;
}
export declare class MemoryEventSink implements EventSink {
    readonly retainsRawContent = true;
    private readonly collected;
    emit(event: HarnessEvent): void;
    events(): readonly HarnessEvent[];
    collectManifest(seed: ManifestSeed): RunManifest;
}
export declare class CliEventSink implements EventSink {
    private readonly io;
    constructor(io: EventWriter);
    emit(event: HarnessEvent): void;
}
//# sourceMappingURL=sinks.d.ts.map