import type { TurnId } from '../../types/ids/index.js'; import type { SessionRecord } from '../../types/session/records.js'; import type { SessionEventDraft } from './events.js'; export declare function assertMaxToolCalls(limit: number | undefined): void; /** A turn-owned admission ledger; durability belongs to the session log. */ export declare class ToolCallBudget { private readonly limit; private readonly turnId; private readonly emit; private readonly read?; private used; private initialized?; private chain; private failed; constructor(limit: number, turnId: TurnId, emit: (event: SessionEventDraft) => Promise, read?: (() => Promise) | undefined); private initialize; /** Reserve before work, never refund. A refused group consumes no new slots. */ admit(count: number, kind: 'batch' | 'nested' | 'retry', signal: AbortSignal): Promise; } //# sourceMappingURL=tool-call-budget.d.ts.map