polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
75 lines • 2.38 kB
TypeScript
import { EventEmitter } from 'events';
export interface ChangeDetectionConfig {
sampleSize: number;
minSampleInterval: number;
changeThreshold: number;
deepComparison: boolean;
patternRecognition: boolean;
}
export interface ChangeDetectionResult {
hasChanged: boolean;
changeType: 'none' | 'minor' | 'major' | 'structural';
confidence: number;
currentHash: string;
previousHash?: string;
changeDetails?: {
addedFields: string[];
removedFields: string[];
modifiedFields: string[];
sizeChange: number;
};
}
export interface PatternAnalysis {
patternType: 'stable' | 'periodic' | 'volatile' | 'trending';
strength: number;
nextChangeTime?: number;
changeFrequency: number;
volatility: number;
}
interface DataSample {
timestamp: number;
dataHash: string;
changeType: string;
confidence: number;
size: number;
}
export interface DataSourceActivity {
dataSourceId: string;
activityLevel: 'static' | 'low' | 'medium' | 'high' | 'volatile';
pattern: PatternAnalysis;
recommendedInterval: number;
confidence: number;
}
export declare class ChangeDetector extends EventEmitter {
private config;
private dataSamples;
private lastKnownHashes;
private patternCache;
private cacheExpiry;
constructor(config?: Partial<ChangeDetectionConfig>);
detectChange(dataSourceId: string, currentData: any, previousData?: any): ChangeDetectionResult;
analyzePattern(dataSourceId: string): PatternAnalysis;
classifyActivity(dataSourceId: string): DataSourceActivity;
getSamples(dataSourceId: string): DataSample[];
clearSamples(dataSourceId: string): void;
getStatistics(): {
totalDataSources: number;
totalSamples: number;
activityDistribution: Record<string, number>;
patternDistribution: Record<string, number>;
};
private generateDataHash;
private performDeepComparison;
private performPatternAnalysis;
private calculateVolatility;
private detectPatternType;
private isPeriodicPattern;
private isTrendingPattern;
private calculatePatternStrength;
private predictNextChangeTime;
private calculateClassificationConfidence;
private estimateDataSize;
private recordSample;
}
export {};
//# sourceMappingURL=change-detector.d.ts.map