import { ProjectContext, SubagentDefinition, ChangeProposal } from './types'; export interface CheckpointData { id: string; timestamp: Date; projectContext: ProjectContext; activeAgents: SubagentDefinition[]; currentSession: { tasksCompleted: string[]; tasksInProgress: string[]; tasksPending: string[]; currentFocus: string; keyDecisions: string[]; importantContext: string[]; }; approvalHistory: { totalProposals: number; approvedProposals: number; rejectedProposals: number; recentProposals: ChangeProposal[]; }; nextSteps: string[]; warnings: string[]; estimatedTokenUsage: number; contextWindowUtilization: number; } export interface CheckpointConfig { enabled: boolean; warningThreshold: number; checkpointThreshold: number; maxContextTokens: number; autoRestart: boolean; saveFrequency: number; retentionDays: number; } export declare class CheckpointSystem { private projectPath; private checkpointDir; private config; private currentTokenCount; private interactionCount; constructor(projectPath?: string); initialize(): Promise; private loadConfig; createCheckpoint(projectContext: ProjectContext, activeAgents: SubagentDefinition[], sessionData: CheckpointData['currentSession'], approvalHistory: CheckpointData['approvalHistory'], nextSteps?: string[], warnings?: string[]): Promise; private createCheckpointSummary; updateTokenCount(additionalTokens: number): void; private checkContextLimits; private triggerEmergencyCheckpoint; shouldCreateCheckpoint(): Promise; private hasEmergencyFlag; clearEmergencyFlag(): Promise; listCheckpoints(): Promise; restoreCheckpoint(checkpointId: string): Promise; getContextWindowStatus(): Promise<{ utilization: number; tokensUsed: number; tokensRemaining: number; status: 'safe' | 'warning' | 'critical'; }>; generateRestartPrompt(checkpoint: CheckpointData): string; private generateCheckpointId; private getProjectFeatures; private cleanupOldCheckpoints; }