import type { ChatMessage, LlmAdapter, LlmAdapterCreateInput, LlmResponse, LlmStreamEvent } from '../../../../core/llm/types.js';
import type { ToolDefinition } from '../../../../core/types.js';
import type { OpenAiCompatibleProviderProfile } from './types.js';
export type OpenAiCompatibleAdapterOptions = LlmAdapterCreateInput & {
    provider: OpenAiCompatibleProviderProfile['id'];
    model: string;
    profile: OpenAiCompatibleProviderProfile;
};
/**
 * Shared adapter for OpenAI-compatible `/chat/completions` providers such as
 * Ollama, LM Studio, LiteLLM, vLLM, Hugging Face router, OpenRouter, Together,
 * and Groq. Profiles own endpoint/model identity; this class owns the common
 * HTTP transport and response parsing.
 */
export declare class OpenAiCompatibleAdapter implements LlmAdapter {
    readonly info: {
        provider: import("./types.js").OpenAiCompatibleProviderId;
        model: string;
        capabilities: import("../../../../core/llm/types.js").LlmAdapterCapabilities;
    };
    private readonly profile;
    private readonly model;
    private readonly displayModel;
    private readonly endpointBaseUrl;
    private readonly endpointAuth;
    private readonly fetcher;
    constructor(options: OpenAiCompatibleAdapterOptions);
    chat(messages: ChatMessage[], tools: ToolDefinition[], signal?: AbortSignal, onStreamEvent?: (event: LlmStreamEvent) => void): Promise<LlmResponse>;
    private readJsonResponse;
    private static trimTrailingSlash;
    private static headers;
    private static defaultFetch;
}
//# sourceMappingURL=openai-compatible-adapter.d.ts.map