/** Input for filtration level computation. */ export interface FiltrationInput { readonly observedFiles: number; readonly totalFiles: number; readonly reReadCount: number; } /** Input for escalation decision. */ export interface EscalationInput { readonly filtrationLevel: number; readonly previousProjection: "outline" | "content"; readonly readCount: number; } /** Result of escalation check. */ export interface EscalationResult { readonly escalate: boolean; readonly suggestedProjection: "outline" | "content"; readonly reason?: string; } /** * Compute the filtration level for the current session. * * Ranges from 0 (fresh session) to 1 (fully saturated). Based on * the fraction of files observed and the number of re-reads. * As filtration grows, graft escalates detail — an agent that has * already explored the codebase should get richer projections. */ export declare function computeFiltrationLevel(input: FiltrationInput): number; /** * Determine whether to escalate projection detail for a re-read. * * Monotone accumulation: as filtration grows, graft escalates. * An agent that outlined a directory and is now re-reading a file * in that directory should get content instead of another outline. */ export declare function shouldEscalateDetail(input: EscalationInput): EscalationResult; //# sourceMappingURL=session-filtration.d.ts.map