/**
 * BudgetMonitor — threshold-based budget alerting
 *
 * Subscribes to SpendEmitter and checks cumulative monthly spend
 * against configured thresholds. Emits alerts with debouncing
 * to prevent duplicate notifications.
 */
import type { BillingBudgetConfig } from './spend-aggregator.js';
import type { SpendRecord } from './spend-record.js';
export interface BudgetAlert {
    severity: 'warning' | 'critical';
    threshold: number;
    currentSpend: number;
    monthlyLimit: number;
    percentUsed: number;
    increment_id?: string;
    timestamp: string;
}
export declare class BudgetMonitor {
    private readonly aggregator;
    private readonly config;
    private readonly onAlert;
    private lastAlertByThreshold;
    private lastCacheInvalidation;
    constructor(spendDir: string, config: BillingBudgetConfig | undefined, onAlert: (alert: BudgetAlert) => void);
    /**
     * Check if a new spend record triggers any budget alerts
     */
    check(record: SpendRecord): void;
    private isDebounced;
}
//# sourceMappingURL=budget-monitor.d.ts.map