import { type GatewayRequest, type GatewayStreamChunk, type NormalizedResponse, type ToolDefinition } from "@oscharko-dev/keiko-model-gateway";
import type { ModelPort, ToolCallRequest, ToolCallResult, ToolPort } from "./ports.js";
export interface ChatModel {
    readonly chat: (request: GatewayRequest) => Promise<NormalizedResponse>;
    readonly chatStream?: (request: GatewayRequest) => AsyncIterable<GatewayStreamChunk>;
}
export declare class GatewayModelPort implements ModelPort {
    private readonly gateway;
    constructor(gateway: ChatModel);
    call(request: GatewayRequest, signal: AbortSignal): Promise<NormalizedResponse>;
    callStream(request: GatewayRequest, signal: AbortSignal): AsyncIterable<GatewayStreamChunk>;
}
export interface RecordedToolCall {
    readonly toolCallId: string;
    readonly toolName: string;
    readonly arguments: Record<string, unknown>;
}
export declare class DryRunToolPort implements ToolPort {
    private readonly tools;
    private readonly recorded;
    constructor(tools?: readonly ToolDefinition[]);
    execute(request: ToolCallRequest): Promise<ToolCallResult>;
    listTools(): readonly ToolDefinition[];
    calls(): readonly RecordedToolCall[];
}
//# sourceMappingURL=adapters.d.ts.map