import type { EscalationSignal } from '../types/escalation.types.js'; import type { SpendingTracker } from '../utils/spending-tracker.js'; export interface BudgetConfig { per_command_usd?: number; per_session_usd?: number; per_stage_tokens?: number; policy: 'strict' | 'tolerant'; } export interface BudgetEstimate { estimatedCostUsd?: number; estimatedTokens?: number; } export interface SessionTotal { totalCostUsd: number; totalTokens: number; } export declare class SessionBudgetService { private readonly tracker; private readonly budgetConfig; constructor(tracker: Pick, budgetConfig: BudgetConfig | undefined); buildBudgetEscalationSignal(spentUsd: number, limitUsd: number, stageName: string): EscalationSignal; getSessionTotal(sessionId: string): SessionTotal; wouldExceed(sessionId: string, estimate: BudgetEstimate): boolean; private exceedsPerCommandLimit; private exceedsPerSessionLimit; private exceedsStageTokenLimit; } export declare function getSessionBudgetService(tracker: Pick, budgetConfig: BudgetConfig | undefined): SessionBudgetService; export declare function resetSessionBudgetService(): void; //# sourceMappingURL=session-budget.service.d.ts.map