import type { AutoCheckpointPolicy, AutoSessionSnapshot } from '../../types/index.js';
declare class SessionTracker {
    private callCount;
    private readonly lastCalls;
    private readonly modifiedFiles;
    private readonly errors;
    private policy;
    /** Record a tool call. Appends to lastCalls (capped at MAX_LAST_CALLS). */
    recordCall(tool: string, success: boolean): void;
    /** Record a file path as modified during this session. */
    recordFile(path: string): void;
    /** Record an error message (capped at MAX_ERRORS). */
    recordError(msg: string): void;
    /**
     * Returns true when a checkpoint should be written:
     * policy is enabled, callCount > 0, and callCount is a multiple of threshold.
     */
    shouldCheckpoint(): boolean;
    /** Return a compact snapshot of the current session state. */
    getSnapshot(): AutoSessionSnapshot;
    /** Update the checkpoint policy (partial update — unspecified fields keep current values). */
    setPolicy(p: Partial<AutoCheckpointPolicy>): void;
    /** Return the current checkpoint policy. */
    getPolicy(): AutoCheckpointPolicy;
    /** Reset the tracker state (useful for testing). */
    reset(): void;
}
/** Singleton session tracker — one per process. */
export declare const sessionTracker: SessionTracker;
export {};
//# sourceMappingURL=session-tracker.d.ts.map