claude-monitor
Version:
Real-time terminal monitoring tool for Claude AI token usage
133 lines • 3.52 kB
TypeScript
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