import type { SettingsManager } from "./settings-manager.js";
export interface DreamContext {
    archivePath: string;
    lastRunTimestamp: string | null;
    globalMemoryDir: string;
    projectMemoryDirs: string[];
    claudeMemoryDirs: string[];
    sessionsDir: string;
}
export interface BackupResult {
    backupPath: string;
    timestamp: string;
    fileCount: number;
    totalSize: number;
    verified: boolean;
}
export interface LinkValidationResult {
    valid: boolean;
    brokenLinks: Array<{
        memoryDir: string;
        indexFile: string;
        pointer: string;
        target: string;
    }>;
}
export type DreamCommand = {
    type: "run";
} | {
    type: "setBackup";
    path: string;
} | {
    type: "showBackup";
};
export declare function parseDreamCommand(text: string): DreamCommand;
export declare function discoverAllProjectMemoryDirs(overrideSessionsDir?: string): string[];
export declare function resolveDreamContext(settingsManager: SettingsManager, overrideGlobalMemDir?: string): Promise<DreamContext>;
export declare function validateArchivePath(archivePath: string, memoryDirs: string[]): void;
export declare function validateMemoryLinks(memoryDirs: string[]): LinkValidationResult;
/** Convert a filesystem path to a collision-resistant directory name for backup staging. */
export declare function safeDirName(path: string): string;
export declare function performDreamBackup(context: DreamContext): Promise<BackupResult>;
export declare function buildDreamPrompt(context: DreamContext, backupResult: BackupResult): string;
export declare function acquireDreamLock(overrideMemDir?: string): Promise<() => void>;
export declare function pruneOldBackups(archivePath: string, keepCount?: number): Promise<void>;
export declare function cleanupDreamTmpDirs(memoryDirs: string[]): void;
//# sourceMappingURL=dream.d.ts.map