/**
 * Multi-mode Rewind Manager
 *
 * Provides rewind points that capture both conversation and file state,
 * with multiple rewind modes: conversation-only, code-only, full, and fork.
 */
export type RewindMode = 'conversation' | 'code' | 'full' | 'fork';
export interface ConversationSnapshot {
    messages: unknown[];
    turnIndex: number;
}
export interface FileSnapshot {
    checkpointId: string;
    files: Map<string, string>;
}
export interface RewindPoint {
    id: string;
    timestamp: number;
    description: string;
    conversation: ConversationSnapshot;
    files: FileSnapshot;
}
export interface RewindResult {
    success: boolean;
    mode: RewindMode;
    restoredTurn?: number;
    restoredFiles?: string[];
    branchId?: string;
}
/**
 * RewindManager manages rewind points and supports multiple rewind modes.
 */
export declare class RewindManager {
    private points;
    private counter;
    private branches;
    /**
     * Create a rewind point capturing conversation and file state.
     */
    createRewindPoint(conversationState: ConversationSnapshot, fileState: FileSnapshot, description?: string): string;
    /**
     * Rewind to a specific point using the given mode.
     */
    rewind(pointId: string, mode: RewindMode): RewindResult;
    /**
     * Get all rewind points.
     */
    getRewindPoints(): RewindPoint[];
    /**
     * Get the latest rewind point.
     */
    getLatestPoint(): RewindPoint | undefined;
    /**
     * Clear all rewind history.
     */
    clearHistory(): void;
}
export declare function getRewindManager(): RewindManager;
export declare function resetRewindManager(): void;
