/**
 * 检查点系统模块
 *
 * 提供工作区快照和回滚功能，使用 Shadow Git 架构
 * 参考 Cline 的实现，并增强了以下功能：
 * - Unrevert 撤销回滚
 * - 7 点安全检查机制
 * - 三种恢复模式
 * - 消息级检查点关联
 * - 会话级跟踪
 * - 并发控制（文件锁）
 * - LFS 大文件支持
 * - 工作区路径验证
 * - 智能提交消息生成
 */

// 检查点管理器
export {
  CheckpointManager,
  getCheckpointManager,
  initCheckpointManager,
  resetCheckpointManager,
} from './manager.js';

// Shadow Git
export { ShadowGit, createShadowGit, hashWorkingDir } from './shadow-git.js';

// 安全检查器
export {
  CheckpointSafetyChecker,
  createSafetyChecker,
} from './safety.js';

// 会话跟踪器
export {
  SessionTracker,
  createSessionTracker,
} from './session-tracker.js';

// 并发锁
export { CheckpointLock } from './lock.js';

// LFS 支持
export {
  LFSPatternLoader,
  createLFSPatternLoader,
  isCommonLargeFile,
  COMMON_LARGE_FILE_EXTENSIONS,
} from './lfs.js';

// 路径验证器
export {
  WorkspacePathValidator,
  createPathValidator,
} from './path-validator.js';

// 提交消息生成器
export {
  CommitMessageGenerator,
  createCommitMessageGenerator,
} from './commit-message.js';

// 类型
export {
  // 基础类型
  type CheckpointMetadata,
  type CheckpointConfig,
  type CheckpointTrigger,
  type FileChange,
  type FileChangeType,
  type DiffInfo,
  type FileDiff,
  type RollbackOptions,
  type RollbackResult,
  type CheckpointEvent,
  type CheckpointEventType,
  type CheckpointEventListener,
  // 恢复模式
  RestoreMode,
  // Unrevert 相关
  type RollbackRecord,
  type UnrevertResult,
  // 安全检查
  type SafetyCheckResult,
  // 会话跟踪
  type SessionState,
  type SessionStats,
  // 路径验证
  type PathValidationResult,
  // 默认配置
  DEFAULT_CHECKPOINT_CONFIG,
} from './types.js';
