import type { Settings } from "../config/settings"; import type { MemoryGuardDecision, MemoryGuardDomainSnapshot, MemoryGuardPolicy, MemoryGuardSchedulerState } from "./memory-guard-contract"; type WorkOwner = { generation: number; source: "timer" | "external"; }; export interface MemoryGuardHostRegistration { ownerId: string; intervalMs: number; } export interface MemoryGuardHostOptions { run: () => Promise; logDebug?: (message: string, meta?: Record) => void; schedulerNow?: () => number; } export declare function resolveMemoryGuardPolicy(settings: Settings): MemoryGuardPolicy; export declare function chooseMemoryGuardAction(input: { domain: MemoryGuardDomainSnapshot; hostSupported: boolean; workerSupported: (workerId: string) => boolean; }): MemoryGuardDecision; export declare function revalidateMemoryGuardAction(previous: Extract, revalidated: MemoryGuardDecision): MemoryGuardDecision; export declare class MemoryGuardHost { #private; constructor(options: MemoryGuardHostOptions); register(registration: MemoryGuardHostRegistration): () => void; updateInterval(ownerId: string, intervalMs: number): void; runTick(generation?: number, source?: WorkOwner["source"]): Promise; runTimerCallbackForTest(owner: { generation: number; token: number; }, deadline: number): Promise; setSchedulerNowForTest(now: () => number): void; getStateForTest(): MemoryGuardSchedulerState; resetForTest(): void; } export {};