/**
 * Chat-history backup: mirror CLI-native session files (e.g. `~/.claude/
 * projects/<enc>/*.jsonl`, `~/.codex/sessions/YYYY/MM/DD/*.jsonl`, Gemini's
 * `*.json`, etc.) into `<projectFolder>/.ccweb/sessions/<cliTool>/` so that
 * whole-project rsync / tar of the project folder captures the chat log
 * alongside source code.  READ PATH IS UNCHANGED — the daemon still reads
 * chat-history from the CLI-native location (see session-manager.ts).  This
 * module is write-only and out-of-band with the hot path.
 *
 * Mirror semantics: a source file deleted upstream is deleted downstream on
 * the next pass.  Only touches files **inside** the per-tool subdir
 * (`.ccweb/sessions/<cliTool>/`); other files under `.ccweb/` (project.json,
 * shortcuts.json, other tools' stale subdirs) are never enumerated.
 */
import type { Project, CliTool } from './types';
export interface BackupMeta {
    lastBackupAt: number;
    lastError?: string;
}
export interface BackupFileInfo {
    name: string;
    mtime: number;
    bytes: number;
}
export interface BackupStatus {
    supported: boolean;
    cliTool: CliTool;
    backupDir: string;
    files: BackupFileInfo[];
    meta: BackupMeta | null;
}
export interface BackupResult {
    projectId: string;
    copied: number;
    deleted: number;
    skipped: number;
    errors: string[];
}
/**
 * Mirror the CLI-native session files of `project` into
 * `<folder>/.ccweb/sessions/<cliTool>/`.  Idempotent: files whose size+mtime
 * match the source are skipped; downstream files with no matching source are
 * deleted.
 */
export declare function backupProjectSessions(project: Project): BackupResult;
/**
 * Status for the UI panel: list the files currently present in the backup
 * dir + last backup timestamp. Zero I/O into source dir.
 */
export declare function getBackupStatus(project: Project): BackupStatus;
/** Run backup across every project. Non-throwing: per-project failures are logged. */
export declare function backupAllProjects(): BackupResult[];
export declare function startBackupScheduler(): void;
export declare function stopBackupScheduler(): void;
//# sourceMappingURL=chat-backup.d.ts.map