export type AutopushResult = {
    pushed: true;
    commitsPushed: number;
    ref: string;
} | {
    pushed: false;
    reason: 'disabled' | 'nothing-to-push' | 'diverged' | 'no-upstream';
    message: string;
};
export interface UnpushedCommitInfo {
    count: number;
    branch: string;
    /** Hours since the oldest unpushed commit was authored. */
    oldestAgeHours: number;
}
export interface SessionContextFreshnessResult {
    stale: boolean;
    /** Age in days of session-context.md relative to newest spec.md (negative means session-context is newer). */
    ageDays: number;
}
export type LearningCategory = 'bug' | 'pattern' | 'decision' | 'estimate';
export type LearningSource = 'autopilot' | 'user';
export interface LearningEntry {
    timestamp: string;
    category: LearningCategory;
    content: string;
    source: LearningSource;
}
export interface LearningsBuffer {
    version: 1;
    entries: LearningEntry[];
}
export interface CheckpointRunnerOptions {
    projectPath: string;
    dryRun?: boolean;
    autopush?: boolean;
    autopushBranches?: string[];
}
export interface CheckpointResult {
    sessionContextRefreshed: boolean;
    learningsFlushed: number;
    unpushedCommits: UnpushedCommitInfo | null;
    pushed?: AutopushResult;
    humanSummary: string;
}
//# sourceMappingURL=session-safeguard.d.ts.map