/**
 * 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