@ui18n/angular
Version:
🅰️ Modern Angular internationalization with standalone components, signals, and dependency injection support for Angular 15+
100 lines • 2.58 kB
TypeScript
import { TranslationRequest, TranslationResult, AIProviderConfig } from './types';
export interface ServiceModeConfig {
mode: 'self-hosted' | 'cloud' | 'hybrid';
selfHostedConfig?: {
aiProvider?: AIProviderConfig;
enableLocalCache?: boolean;
enableOfflineMode?: boolean;
};
cloudConfig?: {
apiEndpoint?: string;
apiKey?: string;
timeout?: number;
regions?: string[];
fallbackEndpoints?: string[];
};
hybridConfig?: {
routingStrategy?: 'cost-optimal' | 'latency-optimal' | 'quality-optimal';
selfHostedThreshold?: number;
cloudThreshold?: number;
failoverTimeout?: number;
enableIntelligentRouting?: boolean;
};
}
export interface ServiceModeStats {
currentMode: 'self-hosted' | 'cloud' | 'hybrid';
totalRequests: number;
selfHostedRequests: number;
cloudRequests: number;
hybridRequests: number;
averageResponseTime: number;
errorRate: number;
costSavings: number;
}
/**
* 服务模式管理器
* 管理自托管、云端服务和混合模式的智能路由
*/
export declare class ServiceModeManager {
private config;
private stats;
private selfHostedTranslator?;
private cloudClient?;
private routingStrategy;
constructor(config: ServiceModeConfig);
/**
* 初始化服务实例
*/
private initializeServices;
/**
* 智能翻译路由
*/
translate(request: TranslationRequest): Promise<TranslationResult>;
/**
* 自托管翻译
*/
private translateSelfHosted;
/**
* 云端翻译
*/
private translateCloud;
/**
* 故障转移处理
*/
private handleFailover;
/**
* 记录错误
*/
private recordError;
/**
* 切换服务模式
*/
switchMode(mode: 'self-hosted' | 'cloud' | 'hybrid'): Promise<void>;
/**
* 获取当前服务模式
*/
getCurrentMode(): 'self-hosted' | 'cloud' | 'hybrid';
/**
* 记录请求
*/
recordRequest(mode: 'self-hosted' | 'cloud' | 'hybrid', responseTime: number): void;
/**
* 获取统计信息
*/
getStats(): ServiceModeStats;
/**
* 获取路由策略统计
*/
getRoutingStats(): {
totalDecisions: number;
selfHostedDecisions: number;
cloudDecisions: number;
avgDecisionTime: number;
costSavings: number;
};
/**
* 销毁实例,清理资源
*/
destroy(): void;
}
//# sourceMappingURL=service-mode.d.ts.map