import type { Clock, CircuitBreakerStatus, GatewayConfig, GatewayRequest, GatewayStreamChunk, NormalizedResponse, ProviderAdapter } from "./types.js";
export interface GatewayDeps {
    readonly adapter?: ProviderAdapter | undefined;
    readonly clock?: Clock | undefined;
}
export declare class Gateway {
    private readonly config;
    private readonly clock;
    private readonly adapter;
    private readonly providers;
    private readonly breakers;
    constructor(config: GatewayConfig, deps?: GatewayDeps);
    chat(request: GatewayRequest): Promise<NormalizedResponse>;
    chatStream(request: GatewayRequest): AsyncGenerator<GatewayStreamChunk>;
    private streamFrom;
    private enrich;
    circuitStatus(modelId: string): CircuitBreakerStatus;
    private invoke;
    private route;
    private breakerFor;
    private adapterFor;
}
//# sourceMappingURL=gateway.d.ts.map