import type { CompileAgentResult } from "#compiler/compile-agent.js";
export interface DevelopmentRuntimeArtifactsRevision {
    readonly revision: string;
}
export interface DevelopmentRuntimeArtifactsSnapshot {
    readonly runtimeAppRoot: string;
    readonly snapshotRoot: string;
    readonly snapshotSourceRoot: string;
}
/**
 * Resolves the dev-server pointer that records the latest runtime artifact
 * snapshot for new sessions.
 */
export declare function resolveDevelopmentRuntimeArtifactsPointerPath(appRoot: string): string;
/**
 * Publishes one immutable dev runtime snapshot and points future sessions at it.
 */
export declare function publishDevelopmentRuntimeArtifactsSnapshot(compileResult: CompileAgentResult): Promise<DevelopmentRuntimeArtifactsSnapshot>;
/**
 * Stages one immutable dev runtime snapshot without moving the latest pointer.
 */
export declare function stageDevelopmentRuntimeArtifactsSnapshot(compileResult: CompileAgentResult): Promise<DevelopmentRuntimeArtifactsSnapshot>;
/**
 * Moves the dev runtime pointer so future sessions use a staged snapshot.
 */
export declare function activateDevelopmentRuntimeArtifactsSnapshot(input: {
    readonly appRoot: string;
    readonly snapshot: DevelopmentRuntimeArtifactsSnapshot;
}): Promise<void>;
/**
 * Reads the latest dev runtime snapshot root when the dev server has one.
 */
export declare function readDevelopmentRuntimeArtifactsSnapshotRoot(pointerPath: string | undefined): string | undefined;
/**
 * Reads a revision token for the latest dev runtime artifact snapshot.
 */
export declare function readDevelopmentRuntimeArtifactsRevision(appRoot: string): DevelopmentRuntimeArtifactsRevision;
/**
 * Starts best-effort cleanup for stale dev-runtime snapshots without delaying
 * `eve dev` startup or rebuild handling.
 */
export declare function pruneDevelopmentRuntimeArtifactsSnapshotsInBackground(appRoot: string): void;
export declare function pruneDevelopmentRuntimeArtifactsSnapshots(input: {
    readonly appRoot: string;
    readonly now?: number;
    readonly recentWindowMs?: number;
    readonly retainCount?: number;
}): Promise<void>;
