export interface AIProvider {
    baseUrl?: string;
    description?: string;
    id: string;
    isEnabled: boolean;
    name: string;
}
export interface AIModel {
    capabilities?: ModelCapabilities;
    description?: string;
    id: string;
    isAvailable: boolean;
    limits?: ModelLimits;
    name: string;
    pricing?: ModelPricing;
    provider: string;
}
export interface ModelCapabilities {
    supportedMimeTypes?: string[];
    supportsAudio: boolean;
    supportsFunctionCalling: boolean;
    supportsStreaming: boolean;
    supportsVision: boolean;
}
export interface ModelLimits {
    maxInputTokens?: number;
    maxOutputTokens?: number;
    maxTokens: number;
    rateLimit?: {
        requestsPerMinute: number;
        tokensPerMinute: number;
    };
}
export interface ModelPricing {
    currency: string;
    inputCostPer1kTokens: number;
    outputCostPer1kTokens: number;
}
export interface ModelSelectionState {
    error: string | null;
    isLoading: boolean;
    models: AIModel[];
    providers: AIProvider[];
    selectedModel: AIModel | null;
}
