import type { GatewayRequest, GatewayStreamChunk, NormalizedResponse } from "@oscharko-dev/keiko-model-gateway";
import type { ToolCallMetadata, ToolCallRequest, ToolCallResult, ToolPort } from "@oscharko-dev/keiko-contracts";
import type { HarnessEvent, HarnessLimits, TaskInput, TaskType } from "./types.js";
export type { ToolCallMetadata, ToolCallRequest, ToolCallResult, ToolPort };
export interface ModelPort {
    readonly call: (request: GatewayRequest, signal: AbortSignal) => Promise<NormalizedResponse>;
    readonly callStream?: (request: GatewayRequest, signal: AbortSignal) => AsyncIterable<GatewayStreamChunk>;
}
export interface EventSink {
    readonly emit: (event: HarnessEvent) => void;
    readonly retainsRawContent?: boolean | undefined;
}
export interface IdSource {
    readonly newRunId: () => string;
}
export interface FingerprintInput {
    readonly taskType: TaskType;
    readonly taskInput: TaskInput;
    readonly limits: HarnessLimits;
    readonly modelId: string;
    readonly workingDirectory: string;
    readonly dryRun: boolean;
    readonly harnessVersion: string;
}
export interface Fingerprinter {
    readonly compute: (input: FingerprintInput) => string;
}
//# sourceMappingURL=ports.d.ts.map