@tehreet/conduit
Version:
LLM API gateway with intelligent routing, robust process management, and health monitoring
67 lines • 1.6 kB
TypeScript
import { EventEmitter } from 'events';
import { UsageData } from '../types';
export interface UsageStorageConfig {
type?: 'memory' | 'file' | 'database';
path?: string;
retention?: number;
maxSize?: number;
}
export interface UsageStorageQuery {
projectId?: string;
agentId?: string;
model?: string;
timeRange?: {
start: Date;
end: Date;
};
limit?: number;
offset?: number;
}
/**
* Storage layer for usage data
*/
export declare class UsageStorage extends EventEmitter {
private config;
private memoryStore;
private filePath;
private isInitialized;
constructor(config?: UsageStorageConfig);
/**
* Initialize storage
*/
initialize(): Promise<void>;
/**
* Store usage data
*/
store(usage: UsageData): Promise<void>;
/**
* Query usage data
*/
query(query?: UsageStorageQuery): Promise<UsageData[]>;
/**
* Cleanup old data
*/
cleanup(cutoffDate?: Date): Promise<void>;
/**
* Update configuration
*/
updateConfig(config: Partial<UsageStorageConfig>): Promise<void>;
/**
* Get storage status
*/
getStatus(): any;
private storeInMemory;
private queryMemory;
private cleanupMemory;
private initializeFileStorage;
private storeInFile;
private queryFile;
private cleanupFile;
private saveToFile;
private initializeDatabaseStorage;
private storeInDatabase;
private queryDatabase;
private cleanupDatabase;
private applyFilters;
}
//# sourceMappingURL=UsageStorage.d.ts.map