import type { TokenOptBudget } from '../../types/index.js';
/**
 * Per-session token budget tracker.
 * Advisory only — never blocks operations, but recommends compression.
 */
export declare class BudgetManager {
    private limit;
    private consumed;
    private readonly consumptionByTool;
    private readonly warningThreshold;
    private readonly criticalThreshold;
    constructor(options?: {
        limit?: number | null;
        warningThreshold?: number;
        criticalThreshold?: number;
    });
    /**
     * Record token consumption for a tool.
     */
    consume(tokens: number, toolName?: string): void;
    /**
     * Get remaining tokens in budget. Returns Infinity if no limit.
     */
    remaining(): number;
    /**
     * Check if budget has been exceeded.
     */
    isOverBudget(): boolean;
    /**
     * Check if at warning level (75% by default).
     */
    isWarning(): boolean;
    /**
     * Check if at critical level (90% by default).
     */
    isCritical(): boolean;
    /**
     * Get full budget report.
     */
    report(): TokenOptBudget;
    /**
     * Set a new budget limit.
     */
    setLimit(limit: number | null): void;
    /**
     * Reset consumption tracking.
     */
    reset(): void;
    /**
     * Get total consumed tokens.
     */
    getConsumed(): number;
}
//# sourceMappingURL=budget.d.ts.map