/**
 * Session Facade
 *
 * Encapsulates session persistence and checkpoint management.
 * This facade handles:
 * - Session storage and retrieval
 * - Checkpoint creation and restoration
 * - Session export functionality
 */
import type { CheckpointManager } from '../../checkpoints/checkpoint-manager.js';
import type { SessionStore } from '../../persistence/session-store.js';
import type { ChatEntry } from '../types.js';
/**
 * Result of a checkpoint rewind operation
 */
export interface RewindResult {
    success: boolean;
    message: string;
}
/**
 * Dependencies required by SessionFacade
 */
export interface SessionFacadeDeps {
    checkpointManager: CheckpointManager;
    sessionStore: SessionStore;
}
/**
 * Facade for session and checkpoint management in agents.
 *
 * Responsibilities:
 * - Managing session persistence (save, list, export)
 * - Creating and restoring checkpoints
 * - Providing session state information
 */
export declare class SessionFacade {
    private readonly checkpointManager;
    private readonly sessionStore;
    constructor(deps: SessionFacadeDeps);
    /**
     * Create a checkpoint with the given description
     */
    createCheckpoint(description: string): void;
    /**
     * Rewind to the last checkpoint
     */
    rewindToLastCheckpoint(): RewindResult;
    /**
     * Get formatted list of checkpoints
     */
    getCheckpointList(): string;
    /**
     * Get the checkpoint manager instance (for advanced operations)
     */
    getCheckpointManager(): CheckpointManager;
    /**
     * Get the session store instance (for advanced operations)
     */
    getSessionStore(): SessionStore;
    /**
     * Save the current chat history to the session
     */
    saveCurrentSession(chatHistory: ChatEntry[]): Promise<void>;
    /**
     * Get formatted list of sessions
     */
    getSessionList(): Promise<string>;
    /**
     * Export current session to a file
     * @returns The path to the exported file, or null if no current session
     */
    exportCurrentSession(outputPath?: string): Promise<string | null>;
    /**
     * Get the current session ID
     */
    getCurrentSessionId(): string | null;
}
