/**
* Multi-Model Orchestration Engine
*
* Intelligent routing between Google AI models with <100ms overhead
* Supports Gemini 2.0 Flash, DeepMind 2.5, and Vertex AI models
*/
///
import { EventEmitter } from "events";
export interface ModelConfig {
name: string;
endpoint?: string;
apiKey?: string;
projectId?: string;
location?: string;
tier: "free" | "pro" | "enterprise";
capabilities: string[];
latencyTarget: number;
costPerToken: number;
maxTokens: number;
}
export interface RoutingContext {
task: string;
userTier: "free" | "pro" | "enterprise";
priority: "low" | "medium" | "high" | "critical";
latencyRequirement: number;
tokenBudget?: number;
capabilities?: string[];
previousModel?: string;
retryCount?: number;
}
export interface ModelResponse {
modelUsed: string;
content: string;
latency: number;
tokenUsage: {
input: number;
output: number;
total: number;
};
cost: number;
cached: boolean;
metadata: any;
}
export declare class ModelOrchestrator extends EventEmitter {
private models;
private clients;
private router;
private auth;
private performance;
private cache;
private logger;
private metrics;
constructor(config?: {
cacheSize?: number;
performanceThreshold?: number;
});
/**
* Initialize with default Google AI models
*/
private initializeDefaultModels;
/**
* Add a new model configuration
*/
addModel(config: ModelConfig): void;
/**
* Initialize model client based on configuration
*/
private initializeModelClient;
/**
* Main orchestration method - route request to optimal model
*/
orchestrate(prompt: string, context: RoutingContext): Promise;
/**
* Execute request with specific model
*/
private executeWithModel;
/**
* Execute Vertex AI request
*/
private executeVertexRequest;
/**
* Execute Gemini API request
*/
private executeGeminiRequest;
/**
* Generate cache key for request
*/
private generateCacheKey;
/**
* Setup performance monitoring
*/
private setupPerformanceMonitoring;
/**
* Analyze current performance
*/
private analyzePerformance;
/**
* Optimize routing algorithms based on performance data
*/
private optimizeRouting;
/**
* Get comprehensive metrics
*/
getMetrics(): {
avgRoutingTime: number;
cacheHitRate: number;
failoverRate: number;
modelDistribution: {
[model: string]: number;
};
performance: {
[metricName: string]: import("./performance-monitor.js").PerformanceStats;
};
totalRequests: number;
routingTime: number;
modelSwitches: number;
cacheHits: number;
failovers: number;
tierUpgrades: number;
};
/**
* Health check for all models
*/
healthCheck(): Promise<{
[model: string]: boolean;
}>;
/**
* Shutdown orchestrator and cleanup resources
*/
shutdown(): void;
}
//# sourceMappingURL=model-orchestrator.d.ts.map