/**
 * transcriptProber — per-framework transcript-growth probe for the SessionReaper.
 *
 * SESSION-REAPER-SPEC §3.1(3) "Transcript growth", gate E. The reaper must NEVER
 * treat an *unresolvable* transcript as "quiet" — that was the v1 BLOCKER (the old
 * CompactionSentinel probe hardcoded `~/.claude/projects`, so Codex sessions and
 * sessions whose path could not be resolved silently read as no-growth and became
 * reap-eligible). This wraps the already-per-framework
 * {@link resolveFrameworkTranscriptPath} (Claude `~/.claude/projects`, Codex
 * `~/.codex/sessions`) and makes the failure mode explicit: anything we cannot
 * resolve-and-stat returns `resolved:false`, and {@link transcriptDelta} reports
 * `'unknown'` for it — which the classifier maps to KEEP.
 *
 * Pure path resolution + a single stat. No mutation, no network.
 */
import { type ResolveTranscriptOptions } from '../core/FrameworkSessionStore.js';
export interface TranscriptProbe {
    /** True only if a path resolved AND statting it succeeded. */
    readonly resolved: boolean;
    /** Resolved path, or '' when no path could be resolved. */
    readonly path: string;
    /** File size in bytes (0 when unresolved). */
    readonly size: number;
    /** mtime in ms since epoch (0 when unresolved). */
    readonly mtime: number;
}
/**
 * Resolve and stat a session's transcript. Returns `resolved:false` when the
 * path cannot be resolved (no session id, Codex file not on disk yet, unknown
 * framework) or the stat fails (missing / permission error). Callers MUST treat
 * `resolved:false` as ambiguous → KEEP, never as "no activity".
 */
export declare function probeTranscript(opts: ResolveTranscriptOptions): TranscriptProbe;
export type TranscriptDelta = 'grew' | 'static' | 'unknown';
/**
 * Compare two probes of the same session over an observation window.
 *  - `'grew'`    — size or mtime advanced ⇒ the session produced output (WORKING).
 *  - `'static'`  — both probes resolved, same file identity, no growth ⇒ quiet
 *                  (high-confidence; safe to count toward idle).
 *  - `'unknown'` — either probe unresolved, or the file identity changed
 *                  (rotation / different path) ⇒ cannot tell ⇒ caller KEEPS.
 */
export declare function transcriptDelta(baseline: TranscriptProbe, current: TranscriptProbe): TranscriptDelta;
//# sourceMappingURL=transcriptProber.d.ts.map