@ooples/token-optimizer-mcp
Version:
Intelligent context window optimization for Claude Code - store content externally via caching and compression, freeing up your context window for what matters
100 lines • 2.65 kB
TypeScript
/**
* Core analytics manager for tracking and aggregating token usage
*/
import type { AnalyticsEntry, AnalyticsStorage, HookAnalytics, ActionAnalytics, ServerAnalytics, HookPhase } from './analytics-types.js';
/**
* Manager for tracking and analyzing token usage
*/
export declare class AnalyticsManager {
private storage;
constructor(storage?: AnalyticsStorage);
/**
* Track a single operation
*/
track(entry: Omit<AnalyticsEntry, 'timestamp'>): Promise<void>;
/**
* Track a batch of operations
*/
trackBatch(entries: Omit<AnalyticsEntry, 'timestamp'>[]): Promise<void>;
/**
* Get per-hook analytics breakdown
*/
getHookAnalytics(options?: {
startDate?: string;
endDate?: string;
}): Promise<HookAnalytics>;
/**
* Get per-action analytics breakdown
*/
getActionAnalytics(options?: {
startDate?: string;
endDate?: string;
}): Promise<ActionAnalytics>;
/**
* Get per-MCP-server analytics breakdown
*/
getServerAnalytics(options?: {
startDate?: string;
endDate?: string;
}): Promise<ServerAnalytics>;
/**
* Get all analytics entries with optional filters
*/
getEntries(filters?: {
hookPhase?: HookPhase;
toolName?: string;
mcpServer?: string;
startDate?: string;
endDate?: string;
sessionId?: string;
}): Promise<AnalyticsEntry[]>;
/**
* Clear all analytics data
*/
clear(): Promise<void>;
/**
* Get total count of analytics entries
*/
count(): Promise<number>;
/**
* Aggregate entries by hook phase
*/
private aggregateByHook;
/**
* Aggregate entries by tool/action
*/
private aggregateByAction;
/**
* Aggregate entries by MCP server
*/
private aggregateByServer;
/**
* Calculate aggregated statistics for a group of entries
*/
private calculateAggregatedStats;
/**
* Export analytics data as JSON
*/
exportAsJson(filters?: {
startDate?: string;
endDate?: string;
hookPhase?: HookPhase;
toolName?: string;
mcpServer?: string;
}): Promise<string>;
/**
* Export analytics data as CSV
*/
exportAsCsv(filters?: {
startDate?: string;
endDate?: string;
hookPhase?: HookPhase;
toolName?: string;
mcpServer?: string;
}): Promise<string>;
/**
* Close the underlying storage and flush any pending writes
*/
close(): Promise<void>;
}
//# sourceMappingURL=analytics-manager.d.ts.map