claude-monitor
Version:
Real-time terminal monitoring tool for Claude AI token usage
44 lines • 1.77 kB
TypeScript
import { EventEmitter } from 'events';
import type { SessionBlock, Settings } from '../types/index.js';
import type { MonitoringData } from '../types/monitoring.js';
export interface OrchestratorEvents {
'data-update': (data: MonitoringData) => void;
'session-change': (event: 'started' | 'ended', sessionId: string, session?: SessionBlock) => void;
'error': (error: Error) => void;
'warning': (message: string) => void;
'info': (message: string) => void;
}
export declare class MonitoringOrchestrator extends EventEmitter {
private updateInterval;
private dataReader;
private sessionAnalyzer;
private settings;
private monitoring;
private updateTimer;
private lastValidData;
private currentSessionId;
private sessionCount;
private dataCache;
private cacheTTL;
constructor(options?: {
updateInterval?: number;
dataPath?: string;
cacheTTL?: number;
});
setSettings(settings: Settings): void;
start(): void;
stop(): void;
forceRefresh(): Promise<MonitoringData | null>;
getLastData(): MonitoringData | null;
waitForInitialData(timeout?: number): Promise<boolean>;
private scheduleNextUpdate;
private fetchAndProcessData;
private processBlocks;
private checkSessionChanges;
private calculateTokenLimit;
emit<K extends keyof OrchestratorEvents>(event: K, ...args: Parameters<OrchestratorEvents[K]>): boolean;
on<K extends keyof OrchestratorEvents>(event: K, listener: OrchestratorEvents[K]): this;
once<K extends keyof OrchestratorEvents>(event: K, listener: OrchestratorEvents[K]): this;
off<K extends keyof OrchestratorEvents>(event: K, listener: OrchestratorEvents[K]): this;
}
//# sourceMappingURL=orchestrator.d.ts.map