/**
 * RuntimeVars — Unified mutable runtime variables for the agent server.
 *
 * All tunable/configurable runtime state that can be changed via RPC
 * (config.updateTunable) or internal logic should live here. This avoids
 * scattering mutable state as private fields across stdio-server.ts.
 *
 * Categories:
 *   1. Budget — aggregate token usage tracking and limits
 *   2. Dream  — idle dream scheduling parameters
 *
 * Usage:
 *   import { runtimeVars } from "../agent/runtime-vars.js";
 *   runtimeVars.teamTokensUsed += tokens;
 *   if (runtimeVars.isTeamBudgetExceeded()) { ... }
 */
export interface TeamBudgetState {
    /** Total tokens consumed by all forked sub-agents (accumulated). */
    tokensUsed: number;
    /** Maximum total tokens allowed across all forks. 0 = unlimited. */
    budgetTokens: number;
}
export interface DreamState {
    /** Idle threshold before triggering dream (minutes). */
    idleMinutes: number;
    /** Whether idle dream is enabled. */
    enabled: boolean;
    /** Last dream timestamp (ms since epoch). */
    lastDreamAt: number;
    /** Cooldown between dreams (ms). */
    cooldownMs: number;
    /** Max duration for a single dream run (ms). */
    maxDurationMs: number;
}
export declare class RuntimeVars {
    readonly teamBudget: TeamBudgetState;
    /** Check if team aggregate budget is exceeded. */
    isTeamBudgetExceeded(): boolean;
    /** Record token consumption from a fork and return updated total. */
    recordForkTokens(tokens: number): number;
    /** Format budget-exceeded error message. */
    teamBudgetExceededError(): string;
    readonly dream: DreamState;
    /** Reset all accumulated state (e.g. on session end). */
    resetAccumulators(): void;
}
/** Singleton instance — shared across the server lifetime. */
export declare const runtimeVars: RuntimeVars;
