import { type BudgetDimension, type BudgetEvent, type WorkflowBudget, type WorkflowBudgetPatch, type WorkflowBudgetUsage, type AgentAccounting, type RunState } from "./types.js"; export declare function validateBudget(value: unknown): WorkflowBudget | undefined; export declare function validateBudgetPatch(value: unknown): WorkflowBudgetPatch; export declare function budgetUsage(value?: Partial): WorkflowBudgetUsage; export declare class WorkflowBudgetRuntime { #private; readonly budget: WorkflowBudget | undefined; readonly version: number; constructor(budget: WorkflowBudget | undefined, version?: number, usage?: Partial, events?: readonly BudgetEvent[], options?: { now?: () => number; onChange?: () => void; active?: boolean; }); get usage(): WorkflowBudgetUsage; get events(): readonly BudgetEvent[]; get hardExhausted(): boolean; checkAgentLaunch(): void; beforeAttempt(): void; beforeTurn(): void; afterTurn(accounting: AgentAccounting, final: boolean): void; instruction(agentId?: string): string | undefined; forAgent(agentId: string): { beforeAttempt: () => void; beforeTurn: () => void; afterTurn: (accounting: AgentAccounting, final: boolean) => void; instruction: () => string | undefined; }; transition(state: RunState): void; recordEvent(event: BudgetEvent): void; snapshot(): { usage: WorkflowBudgetUsage; budgetEvents: readonly BudgetEvent[]; }; } export declare function mergeBudget(budget: WorkflowBudget | undefined, patch: WorkflowBudgetPatch): WorkflowBudget | undefined; export declare function budgetRelaxed(previous: WorkflowBudget | undefined, next: WorkflowBudget | undefined): boolean; export declare function exhaustedBudgetDimensions(budget: WorkflowBudget | undefined, usage: WorkflowBudgetUsage): BudgetDimension[]; export declare function resumeBudgetAllowed(budget: WorkflowBudget | undefined, usage: WorkflowBudgetUsage): boolean;