interface OpenAITextPart {
    type: 'text';
    text: string;
}
interface OpenAIImagePart {
    type: 'image_url';
    image_url: {
        url: string;
    };
}
type OpenAIContentPart = OpenAITextPart | OpenAIImagePart;
interface OpenAIMessage {
    role: 'system' | 'user' | 'assistant' | 'tool';
    content: string | OpenAIContentPart[] | null;
    tool_call_id?: string;
    tool_calls?: Array<{
        id: string;
        type: 'function';
        function: {
            name: string;
            arguments: string;
        };
    }>;
}
export interface ProxyOpenAIRequest {
    model?: string;
    stream: boolean;
    reasoning_effort?: string;
    reasoning?: {
        enabled: boolean;
        effort: string;
    };
    tools?: Array<{
        type: 'function';
        function: {
            name: string;
            description?: string;
            parameters: Record<string, unknown>;
        };
    }>;
    tool_choice?: 'auto' | 'none' | 'required' | {
        type: 'function';
        function: {
            name: string;
        };
    };
    parallel_tool_calls?: boolean;
    messages: OpenAIMessage[];
    max_tokens?: number;
    max_completion_tokens?: number;
    temperature?: number;
    top_p?: number;
    stop?: string[];
    metadata?: Record<string, unknown>;
}
export declare class ProxyRequestTransformer {
    transform(raw: unknown): ProxyOpenAIRequest;
}
export {};
//# sourceMappingURL=request-transformer.d.ts.map