@ui18n/angular
Version:
🅰️ Modern Angular internationalization with standalone components, signals, and dependency injection support for Angular 15+
124 lines • 3.36 kB
TypeScript
import { SupportedLanguage } from './types';
import { CacheManager } from './cache-manager';
export interface VersionControlConfig {
enabled?: boolean;
autoSyncInterval?: number;
maxVersions?: number;
remoteEndpoint?: string;
apiKey?: string;
enableIncrementalSync?: boolean;
conflictResolution?: 'local' | 'remote' | 'merge' | 'manual';
enableRealTimeSync?: boolean;
realTimeSyncMethod?: 'websocket' | 'sse' | 'polling';
websocketUrl?: string;
sseUrl?: string;
syncEventHandlers?: {
onVersionUpdate?: (language: SupportedLanguage, version: string) => void;
onSyncError?: (error: Error) => void;
onConflictDetected?: (language: SupportedLanguage, conflict: any) => void;
};
}
export interface LanguageVersion {
version: string;
timestamp: number;
translations: Map<string, string>;
changes: Array<{
type: 'add' | 'update' | 'delete';
key: string;
oldValue?: string;
newValue?: string;
}>;
}
export interface VersionControlStats {
totalVersions: number;
lastSyncTime?: number;
pendingChanges: number;
conflictsResolved: number;
syncErrors: number;
realTimeConnected: boolean;
lastRealTimeEvent?: number;
syncMethod: 'polling' | 'websocket' | 'sse' | 'none';
}
/**
* 版本控制管理器
* 实现语言包版本控制、增量更新检测和实时同步
*/
export declare class VersionControlManager {
private config;
private cacheManager;
private versions;
private stats;
private syncTimer?;
private realTimeSync?;
constructor(config: VersionControlConfig, cacheManager: CacheManager);
/**
* 检测变更并创建新版本
*/
detectChangesAndCreateVersion(language: SupportedLanguage, translations: Map<string, string>): Promise<string>;
/**
* 同步语言包
*/
syncLanguagePack(language: SupportedLanguage): Promise<boolean>;
/**
* 同步所有语言包
*/
syncAllLanguagePacks(): Promise<Map<SupportedLanguage, boolean>>;
/**
* 检查更新
*/
checkForUpdates(): Promise<Map<SupportedLanguage, string[]>>;
/**
* 回滚到指定版本
*/
rollbackToVersion(language: SupportedLanguage, version: string): Promise<boolean>;
/**
* 获取版本历史
*/
getVersionHistory(language: SupportedLanguage): LanguageVersion[];
/**
* 获取统计信息
*/
getStats(): VersionControlStats;
/**
* 启动自动同步
*/
private startAutoSync;
/**
* 停止自动同步
*/
private stopAutoSync;
/**
* 生成版本ID
*/
private generateVersionId;
/**
* 销毁实例
*/
/**
* 初始化实时同步
*/
private initializeRealTimeSync;
/**
* 处理实时版本更新事件
*/
private handleRealTimeVersionUpdate;
/**
* 处理实时同步错误
*/
private handleRealTimeSyncError;
/**
* 手动触发实时同步重连
*/
reconnectRealTimeSync(): Promise<boolean>;
/**
* 获取实时同步状态
*/
getRealTimeSyncStatus(): {
enabled: boolean;
connected: boolean;
method: string;
lastEvent?: number;
};
destroy(): void;
}
//# sourceMappingURL=version-control.d.ts.map