import OpenAI from "openai";
import { GenericClient, CompletionOptions, CompletionResponse, EmbeddingOptions, EmbeddingResponse, AudioTranscriptionOptions, AudioTranscriptionResponse, AudioGenerationOptions, AudioGenerationResponse, ImageGenerationOptions, ImageGenerationResponse, VideoGenerationOptions, VideoGenerationResponse, VideoStatusOptions, VideoStatusResponse, FileUploadOptions, FileUploadResponse, FileDownloadOptions, FileDownloadResponse } from "./types";
import { ModelModality } from "./types";
export declare class GenericXAIClient implements GenericClient {
    private client;
    private apiKey;
    constructor(apiKey?: string);
    setKey(apiKey: string): void;
    createChatCompletion(options: CompletionOptions): Promise<CompletionResponse>;
    createChatResponse(options: CompletionOptions): Promise<CompletionResponse>;
    pricesPerMillion(): Record<string, import("./pricing").CatalogModelPricing>;
    calculateCost(model: string, usage: OpenAI.ChatCompletion["usage"]): number | undefined;
    getModels(modality?: ModelModality): Promise<{
        id: string;
    }[]>;
    createEmbedding(options: EmbeddingOptions): Promise<EmbeddingResponse>;
    createAudioTranscription(options: AudioTranscriptionOptions): Promise<AudioTranscriptionResponse>;
    createAudioGeneration(options: AudioGenerationOptions): Promise<AudioGenerationResponse>;
    createImageGeneration(options: ImageGenerationOptions): Promise<ImageGenerationResponse>;
    createVideoGeneration(options: VideoGenerationOptions): Promise<VideoGenerationResponse>;
    getVideoStatus(options: VideoStatusOptions): Promise<VideoStatusResponse>;
    downloadVideo(options: FileDownloadOptions): Promise<FileDownloadResponse>;
    uploadFile(options: FileUploadOptions): Promise<FileUploadResponse>;
    downloadFile(options: FileDownloadOptions): Promise<FileDownloadResponse>;
    getContextLimit(model: string): {
        contextLimit: number;
        threshold: number;
    } | undefined;
}
