import type { ProjectMapSnapshot } from './protocol/project-map-types.js';
export interface BuildProjectMapSnapshotOptions {
    createdAt?: string;
    maxSearchDepth?: number;
    maxSourceBytes?: number;
}
export interface ProjectMapPromptSummaryOptions {
    maxEntries?: number;
}
export declare function buildProjectMapSnapshot(cwd?: string, options?: BuildProjectMapSnapshotOptions): ProjectMapSnapshot;
export declare function isProjectMapEnabled(env?: NodeJS.ProcessEnv): boolean;
/**
 * Day-0 shadow-sampling opt-out. Defaults ON whenever Project Map itself is on
 * (the sampler only runs inside an enabled Project Map path anyway); set
 * OWLCODA_PROJECT_MAP_SHADOW=0 to silence the ledger writes without disabling
 * Project Map. Mirrors isProjectMapEnabled's FALSY handling.
 */
export declare function isProjectMapShadowSamplingEnabled(env?: NodeJS.ProcessEnv): boolean;
/**
 * Append one behavior-neutral shadow sample of a Project Map snapshot decision
 * to the gate-telemetry ledger. Records whether the snapshot was rebuilt
 * (stale) or reused (fresh) plus the resulting map shape, so default-on
 * readiness can be judged from accumulated fresh/stale samples instead of a
 * model self-report. Fire-and-forget: recordGateEvent swallows all I/O errors.
 */
export declare function recordProjectMapSnapshotSample(snapshot: ProjectMapSnapshot, wasStale: boolean, conversationId: string, iteration: number, env?: NodeJS.ProcessEnv): void;
export declare function isProjectMapSnapshotStale(snapshot: ProjectMapSnapshot | undefined, cwd?: string, options?: Pick<BuildProjectMapSnapshotOptions, 'maxSearchDepth' | 'maxSourceBytes'>): boolean;
export declare function buildProjectMapPromptSummary(snapshot: ProjectMapSnapshot, options?: ProjectMapPromptSummaryOptions): string;
