/**
 * BudgetManager - Tracks token usage, turn count, and wall-clock time
 * to enforce resource limits on the agent RunLoop.
 *
 * Note: Budget is a soft limit — the last LLM response may push usage
 * over the configured maximum by up to one response size. The check runs
 * before each LLM call, not after.
 */
import type { BudgetConfig } from "./types.js";
export declare class BudgetManager {
    private totalInputTokens;
    private totalOutputTokens;
    private turnCount;
    private readonly startTime;
    private readonly config;
    constructor(config: BudgetConfig);
    recordUsage(inputTokens: number, outputTokens: number): void;
    isExhausted(): boolean;
    get totalTokens(): number;
    get elapsedMs(): number;
    get turns(): number;
    getStats(): {
        totalInputTokens: number;
        totalOutputTokens: number;
        totalTokens: number;
        turns: number;
        elapsedMs: number;
    };
}
