import type { AuthContext } from '../auth/AuthContext'; import type { GatewayEvent, GatewayProtocol } from './types'; import type { GatewayModelProjection } from './routing/ModelRouter'; export interface CloudGatewayModelsClientOptions { cloudGatewayOrigin: string; fetch?: typeof fetch; timeoutMs?: number; inferenceTimeoutMs?: number; } /** * Local `/v1/models` splices Cloud's `/v1/models` by forwarding the caller's * Solid identity. Local inference without a usable Pod credential uses the * same identity on Cloud `/v1/chat/completions` (and sibling protocol * routes). Cloud recognizes that identity; this client never writes Cloud * rows into the Pod and never sends provider keys or local client secrets. */ export declare class CloudGatewayModelsClient { private readonly logger; readonly modelsUrl: string; private readonly origin; private readonly fetchImpl; private readonly timeoutMs; private readonly inferenceTimeoutMs; constructor(options: CloudGatewayModelsClientOptions); listModels(auth: AuthContext): Promise; completeJson(input: { auth: AuthContext; protocol: GatewayProtocol; body: unknown; signal?: AbortSignal; }): Promise>; executeStream(input: { auth: AuthContext; protocol: GatewayProtocol; body: unknown; signal?: AbortSignal; }): AsyncIterable; private inferenceResponse; } export declare function resolveCloudModelsGatewayOrigin(input: { edition: string; oidcIssuer?: string; solidBaseUrl?: string; publicUrl?: string; }): string | undefined; export declare function unionGatewayModelLists(local: readonly GatewayModelProjection[], cloud: readonly GatewayModelProjection[]): GatewayModelProjection[]; export declare function callerIdentityAuthorization(auth: AuthContext): string | undefined;