@ahmedhegazee/nestjs-telescope
Version:
Advanced observability and monitoring solution for NestJS applications with ML-powered analytics, enterprise features, and production-ready scaling
47 lines (46 loc) • 1.21 kB
TypeScript
export interface WatcherInterface {
readonly name: string;
readonly isEnabled: boolean;
enable(): void;
disable(): void;
cleanup(): Promise<void>;
healthCheck?(): Promise<boolean>;
}
export interface WatcherMetadata {
name: string;
enabled: boolean;
priority: number;
tags: string[];
dependencies: string[];
lastActivity?: Date;
entriesProcessed: number;
}
export interface WatcherConfig {
enabled: boolean;
priority?: number;
tags?: string[];
dependencies?: string[];
}
export interface WatcherRegistryStatistics {
total: number;
enabled: number;
disabled: number;
totalEntriesProcessed: number;
watchers: WatcherMetadata[];
}
export interface WatcherHealthStatus {
healthy: boolean;
watchers: Record<string, boolean>;
timestamp: Date;
}
export declare abstract class BaseWatcher implements WatcherInterface {
abstract readonly name: string;
protected enabled: boolean;
get isEnabled(): boolean;
enable(): void;
disable(): void;
abstract cleanup(): Promise<void>;
protected abstract onEnable(): void;
protected abstract onDisable(): void;
healthCheck(): Promise<boolean>;
}