import type { Budget, SpawnUsage } from "../types.js";
import type { NormalizedTraceEvent } from "./trace/types.js";
type BudgetSnapshot = {
    iterations: number;
    usage: SpawnUsage;
    elapsedMs: number;
    tripped?: keyof Budget;
};
export declare class BudgetEnforcer {
    private readonly startedAt;
    private readonly budget;
    private readonly controller;
    private readonly wallTimer;
    private readonly usageTotal;
    private readonly countedToolIds;
    private readonly pendingIdlessTools;
    private iterationsTotal;
    private pendingTrip;
    private tripped;
    private completed;
    constructor(budget: Budget, controller: AbortController);
    onEvent(event: NormalizedTraceEvent): void;
    finalize(): BudgetSnapshot;
    snapshot(): BudgetSnapshot;
    private currentSnapshot;
    private addUsage;
    private countToolIteration;
    private checkCaps;
    private trip;
}
export {};
