/**
 * Nexus Prime — Machine Efficiency Governor
 *
 * First-class subsystem that tracks machine resource usage and
 * enforces hard limits on worktrees, caches, dashboard state,
 * and process count. Can degrade operation under pressure.
 *
 * Principle: agentically strong and laptop-safe.
 */
import type { GovernorState, GovernorLimits, PressureLevel } from './types.js';
export declare class MachineEfficiencyGovernor {
    private limits;
    private activeWorktrees;
    private activeDashboardListeners;
    private cacheStats;
    private pressureLevel;
    private idleMode;
    private lastCheckedAt;
    private checkInterval;
    constructor(limits?: Partial<GovernorLimits>);
    /** Start periodic pressure checks. */
    start(intervalMs?: number): void;
    /** Stop periodic checks. */
    stop(): void;
    /** Refresh all tracked metrics. */
    refresh(): void;
    /** Get current governor state (for dashboard Trust surface). */
    getState(): GovernorState;
    /** Check if a new worktree can be allocated. */
    canAllocateWorktree(): boolean;
    /** Register a worktree allocation. Returns false if cap exceeded. */
    registerWorktree(): boolean;
    /** Release a worktree. */
    releaseWorktree(): void;
    /** Get active worktree count. */
    getActiveWorktreeCount(): number;
    /** Check if a new dashboard listener can be added. */
    canAddDashboardListener(): boolean;
    /** Register a dashboard listener. Returns false if cap exceeded. */
    registerDashboardListener(): boolean;
    /** Release a dashboard listener. */
    releaseDashboardListener(): void;
    /** Update cache size for a given cache type. */
    updateCacheSize(type: 'proof' | 'graph' | 'embedding', sizeMB: number): void;
    /** Check if cache is within bounds. */
    isCacheWithinBounds(): boolean;
    /** Enter idle mode (longer polling intervals, reduced background work). */
    enterIdleMode(): void;
    /** Exit idle mode. */
    exitIdleMode(): void;
    /** Get recommended polling interval based on idle mode. */
    getPollingInterval(): number;
    /** Get current pressure level. */
    getPressureLevel(): PressureLevel;
    /**
     * Get the parallelism budget based on pressure level.
     * nominal:  full parallelism (up to maxWorktrees)
     * elevated: 50% reduction
     * critical: single-worker mode
     */
    getParallelismBudget(): number;
    /** Check if simulation should be paused (elevated or critical). */
    shouldPauseSimulation(): boolean;
    /** Check if non-critical background work should be paused. */
    shouldPauseBackgroundWork(): boolean;
    /** Get recommended dashboard refresh interval based on pressure. */
    getDashboardRefreshInterval(): number;
}
export declare function getSharedGovernor(): MachineEfficiencyGovernor;
