import { ChatMessage, ChatOptions } from '../../../types/chat';
import { Tool } from '../../../types/tool';
export interface AzureProviderConfig {
    apiKey: string;
    subscriptionId: string;
    endpoint: string;
    deployment: string;
}
export interface AzureChatRequestBody {
    messages: any[];
    max_tokens?: number;
    temperature?: number;
    tools?: any[];
    tool_choice?: string;
    stream?: boolean;
}
export interface AzureChatResponse {
    id: string;
    object: string;
    created: number;
    model: string;
    choices: {
        index: number;
        message?: {
            role: string;
            content: string;
            function_call?: {
                name: string;
                arguments: string;
            };
        };
        delta?: {
            content?: string;
            function_call?: {
                name: string;
                arguments: string;
            };
        };
        finish_reason: string;
    }[];
    usage?: {
        prompt_tokens: number;
        completion_tokens: number;
        total_tokens: number;
    };
}
export interface AzureEmbeddingRequestBody {
    input: string | string[];
}
export interface AzureEmbeddingResponse {
    data: {
        embedding: number[];
    }[];
}
export type AzureCacheKey = {
    messages: ChatMessage[];
    options: ChatOptions;
    tools?: Tool[];
};
