import type { ProviderRequest, ProviderResponse } from "../../types"; /** * OpenAI-compatible message format used by Portkey */ interface OpenAIMessage { role: "user" | "assistant" | "system"; content: string; } /** * OpenAI-compatible request format */ interface OpenAIRequest { model: string; messages: OpenAIMessage[]; max_tokens?: number; temperature?: number; top_p?: number; } /** * OpenAI-compatible response format from Portkey */ export interface OpenAIResponse { choices?: Array<{ message?: { content?: string; }; finish_reason?: string; index?: number; }>; usage?: { prompt_tokens?: number; completion_tokens?: number; total_tokens?: number; }; model?: string; id?: string; object?: string; created?: number; } /** * Portkey uses OpenAI-compatible API format for all providers. * This adapter converts provider-specific requests to OpenAI format. */ export declare class PortkeyAdapter { /** * Convert Anthropic request to OpenAI format */ static anthropicToOpenAI(request: ProviderRequest): OpenAIRequest; /** * Convert OpenAI request to OpenAI format (passthrough, but normalize) */ static openaiToOpenAI(request: ProviderRequest): OpenAIRequest; /** * Convert Gemini request to OpenAI format */ static geminiToOpenAI(request: ProviderRequest): OpenAIRequest; /** * Parse OpenAI format response (from Portkey) */ static parseOpenAIResponse(response: OpenAIResponse): ProviderResponse; /** * Safely extract and validate model option */ private static getModelOption; /** * Safely extract and validate max_tokens option */ private static getMaxTokens; /** * Safely extract and validate temperature option */ private static getTemperature; /** * Safely extract and validate top_p option */ private static getTopP; /** * Validate that response is a valid OpenAI response */ private static isValidOpenAIResponse; } export {}; //# sourceMappingURL=portkey-adapter.d.ts.map