cost-claude
Version:
Claude Code cost monitoring, analytics, and optimization toolkit
76 lines • 1.99 kB
TypeScript
import { EventEmitter } from 'events';
export interface BudgetConfig {
daily?: number;
weekly?: number;
monthly?: number;
total?: number;
alertThresholds?: number[];
notifyOnExceed?: boolean;
resetDates?: {
daily?: string;
weekly?: string;
monthly?: string;
};
}
export interface BudgetStatus {
daily: {
used: number;
limit: number;
percentage: number;
exceeded: boolean;
};
weekly: {
used: number;
limit: number;
percentage: number;
exceeded: boolean;
};
monthly: {
used: number;
limit: number;
percentage: number;
exceeded: boolean;
};
total: {
used: number;
limit: number;
percentage: number;
exceeded: boolean;
};
}
export interface BudgetAlert {
type: 'daily' | 'weekly' | 'monthly' | 'total';
threshold: number;
used: number;
limit: number;
message: string;
timestamp: Date;
}
export declare class BudgetManager extends EventEmitter {
private static instance;
private configPath;
private statePath;
private config;
private usageState;
private alertedThresholds;
private constructor();
static getInstance(): BudgetManager;
private loadConfig;
private loadState;
private saveConfig;
private saveState;
private getWeekStart;
private checkResetDates;
setBudget(type: 'daily' | 'weekly' | 'monthly' | 'total', amount: number): void;
setAlertThresholds(thresholds: number[]): void;
updateUsage(cost: number): Promise<void>;
private checkBudgets;
private formatAlertMessage;
getStatus(): BudgetStatus;
calculateCurrentPeriodUsage(projectPath: string): Promise<void>;
reset(type?: 'daily' | 'weekly' | 'monthly' | 'total'): void;
getConfig(): BudgetConfig;
exportReport(): string;
private createProgressBar;
}
//# sourceMappingURL=budget-manager.d.ts.map