@hivetechs/hive-ai
Version:
Real-time streaming AI consensus platform with HTTP+SSE MCP integration for Claude Code, VS Code, Cursor, and Windsurf - powered by OpenRouter's unified API
131 lines • 4.55 kB
TypeScript
/**
* Real-time Usage Monitoring - Unified Database Implementation
*
* Uses the unified SQLite database instead of JSON files for data persistence.
* Provides real-time monitoring of spending with budget thresholds and alerts.
*/
import { z } from 'zod';
export declare const UsageMonitorConfigSchema: z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
interval: z.ZodDefault<z.ZodNumber>;
warningThreshold: z.ZodDefault<z.ZodNumber>;
criticalThreshold: z.ZodDefault<z.ZodNumber>;
spikeDetection: z.ZodDefault<z.ZodBoolean>;
spikeThreshold: z.ZodDefault<z.ZodNumber>;
autoBreak: z.ZodDefault<z.ZodBoolean>;
gracePeriod: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
interval: number;
warningThreshold: number;
criticalThreshold: number;
spikeDetection: boolean;
spikeThreshold: number;
autoBreak: boolean;
gracePeriod: number;
}, {
enabled?: boolean | undefined;
interval?: number | undefined;
warningThreshold?: number | undefined;
criticalThreshold?: number | undefined;
spikeDetection?: boolean | undefined;
spikeThreshold?: number | undefined;
autoBreak?: boolean | undefined;
gracePeriod?: number | undefined;
}>;
export declare const MonitoringSessionSchema: z.ZodObject<{
sessionId: z.ZodString;
startTime: z.ZodString;
endTime: z.ZodOptional<z.ZodString>;
status: z.ZodEnum<["active", "paused", "stopped"]>;
checksPerformed: z.ZodDefault<z.ZodNumber>;
alertsSent: z.ZodDefault<z.ZodNumber>;
lastCheck: z.ZodOptional<z.ZodString>;
config: z.ZodObject<{
enabled: z.ZodDefault<z.ZodBoolean>;
interval: z.ZodDefault<z.ZodNumber>;
warningThreshold: z.ZodDefault<z.ZodNumber>;
criticalThreshold: z.ZodDefault<z.ZodNumber>;
spikeDetection: z.ZodDefault<z.ZodBoolean>;
spikeThreshold: z.ZodDefault<z.ZodNumber>;
autoBreak: z.ZodDefault<z.ZodBoolean>;
gracePeriod: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
enabled: boolean;
interval: number;
warningThreshold: number;
criticalThreshold: number;
spikeDetection: boolean;
spikeThreshold: number;
autoBreak: boolean;
gracePeriod: number;
}, {
enabled?: boolean | undefined;
interval?: number | undefined;
warningThreshold?: number | undefined;
criticalThreshold?: number | undefined;
spikeDetection?: boolean | undefined;
spikeThreshold?: number | undefined;
autoBreak?: boolean | undefined;
gracePeriod?: number | undefined;
}>;
}, "strip", z.ZodTypeAny, {
status: "active" | "stopped" | "paused";
config: {
enabled: boolean;
interval: number;
warningThreshold: number;
criticalThreshold: number;
spikeDetection: boolean;
spikeThreshold: number;
autoBreak: boolean;
gracePeriod: number;
};
sessionId: string;
startTime: string;
checksPerformed: number;
alertsSent: number;
lastCheck?: string | undefined;
endTime?: string | undefined;
}, {
status: "active" | "stopped" | "paused";
config: {
enabled?: boolean | undefined;
interval?: number | undefined;
warningThreshold?: number | undefined;
criticalThreshold?: number | undefined;
spikeDetection?: boolean | undefined;
spikeThreshold?: number | undefined;
autoBreak?: boolean | undefined;
gracePeriod?: number | undefined;
};
sessionId: string;
startTime: string;
lastCheck?: string | undefined;
endTime?: string | undefined;
checksPerformed?: number | undefined;
alertsSent?: number | undefined;
}>;
type UsageMonitorConfig = z.infer<typeof UsageMonitorConfigSchema>;
type MonitoringSession = z.infer<typeof MonitoringSessionSchema>;
export declare function startMonitoringSession(config?: Partial<UsageMonitorConfig>): Promise<{
success: boolean;
sessionId: string;
message: string;
}>;
export declare function stopMonitoringSession(): Promise<{
success: boolean;
message: string;
sessionSummary?: any;
}>;
export declare function getMonitoringStatus(): Promise<{
isActive: boolean;
currentSession: MonitoringSession | null;
statistics: any;
}>;
export declare function configureMonitoring(config: Partial<UsageMonitorConfig>): Promise<{
success: boolean;
message: string;
}>;
export {};
//# sourceMappingURL=usage-monitor.d.ts.map