UNPKG

claude-monitor

Version:

Real-time terminal monitoring tool for Claude AI token usage

133 lines 3.52 kB
export declare enum CostMode { AUTO = "auto", CACHED = "cached", CALCULATED = "calculate" } export declare enum PlanType { PRO = "pro", MAX5 = "max5", MAX20 = "max20", CUSTOM = "custom" } export interface UsageEntry { timestamp: Date; inputTokens: number; outputTokens: number; cacheCreationTokens: number; cacheReadTokens: number; costUsd: number; model: string; messageId: string; requestId: string; } export interface TokenCounts { inputTokens: number; outputTokens: number; cacheCreationTokens: number; cacheReadTokens: number; } export declare function getTotalTokens(counts: TokenCounts): number; export interface BurnRate { tokensPerMinute: number; costPerHour: number; } export interface UsageProjection { projectedTotalTokens: number; projectedTotalCost: number; remainingMinutes: number; } export interface ModelStats { inputTokens: number; outputTokens: number; cacheCreationTokens: number; cacheReadTokens: number; totalTokens: number; cost: number; messageCount: number; } export interface LimitMessage { type: 'warning' | 'critical' | 'info'; message: string; timestamp: Date; } export interface SessionBlock { id: string; startTime: Date; endTime: Date; entries: UsageEntry[]; tokenCounts: TokenCounts; isActive: boolean; isGap: boolean; burnRate: BurnRate | null; actualEndTime: Date | null; perModelStats: Record<string, ModelStats>; models: string[]; sentMessagesCount: number; costUsd: number; limitMessages: LimitMessage[]; projectionData: UsageProjection | null; burnRateSnapshot: BurnRate | null; } export declare function getSessionTotalTokens(session: SessionBlock): number; export declare function getSessionDurationMinutes(session: SessionBlock): number; export interface RawUsageEntry { timestamp: string; type: string; sessionId?: string; requestId?: string; uuid?: string; message?: { id?: string; role?: string; model?: string; usage?: { input_tokens?: number; output_tokens?: number; cache_creation_input_tokens?: number; cache_read_input_tokens?: number; }; }; project_path?: string; model?: string; usage?: { input_tokens?: number; output_tokens?: number; cache_creation_input_tokens?: number; cache_read_input_tokens?: number; }; cost?: { total_cost?: number; }; message_id?: string; request_id?: string; } export interface Settings { hoursBack: number; costMode: CostMode; planType: PlanType; customLimit: number | null; showNotifications: boolean; theme: 'auto' | 'light' | 'dark'; timeFormat: '12' | '24'; timezone: string; updateInterval: number; } export interface Plan { name: string; tokenLimit: number; messageLimit: number; description: string; } export interface ModelPricing { inputPricePerMillion: number; outputPricePerMillion: number; cacheCreationPricePerMillion: number; cacheReadPricePerMillion: number; } export type DisplayState = 'loading' | 'error' | 'active_session' | 'no_session' | 'idle'; export interface MonitorError extends Error { code?: string; context?: Record<string, unknown>; } export declare function normalizeModelName(model: string): string; //# sourceMappingURL=index.d.ts.map