import type { Body, Endpoint, Headers, HttpClient, ModelApi, ModelRequestOptions } from "@typeDefs"; import { HttpClientOptions } from "../../utils/httpClient"; import { BaseModelProvider } from "../baseModelProvider"; import type { BaseModelProviderConfig } from "../baseModelProvider"; import type { AuthStrategy, EndpointStrategy, HeadersStrategy } from "./typeDefs"; /** * @category Core Implementations */ export declare class HttpModelProvider extends BaseModelProvider { readonly client: HttpClient; private endpoint; private headers; private auth; constructor({ api, config, endpoint, headers, auth, client, }: { api: ModelApi; config: TModelProviderConfig; endpoint: Endpoint | EndpointStrategy; headers?: Headers | HeadersStrategy; auth?: AuthStrategy; client?: HttpClient; }); protected getEndpoint(options: TRequestOptions): string | Promise; protected getBody(options: TRequestOptions): string; protected getHeaders(options: TRequestOptions): Headers | Promise; protected applyAuth(options: TRequestOptions, endpoint: Endpoint, body: Body, headers: Headers): Promise<{ endpoint: string; body: string; headers: Headers; }> | { endpoint: string; body: string; headers: Headers; }; protected dispatchRequest(options: TRequestOptions, clientOptions: THttpClientOptions): Promise; } export type InferHttpClientOptions = T extends HttpModelProvider ? U : never;