import type { AgentConfig, AgentState, Task } from './types';
/**
 * Manages agent state persistence with immutable updates
 */
export declare class AgentStateManager {
    #private;
    constructor(stateDir: string, _sessionId: string);
    /**
     * Initialize a new agent state
     */
    initialize(config: AgentConfig): Promise<AgentState>;
    /**
     * Load existing state from disk
     */
    loadState(): Promise<AgentState | null>;
    /**
     * Get current state (readonly)
     */
    getState(): AgentState | null;
    /**
     * Update state with immutable merge
     */
    updateState(updates: Partial<AgentState>): Promise<void>;
    /**
     * Update specific task in queue (immutable)
     */
    updateTask(taskId: string, updates: Partial<Task>): Promise<void>;
    /**
     * Move task from queue to completed/failed/blocked (immutable)
     */
    moveTask(taskId: string, _from: 'queue', to: 'completed' | 'failed' | 'blocked'): Promise<void>;
    /**
     * Save state to disk
     */
    saveState(): Promise<void>;
    /**
     * Start auto-save timer
     */
    startAutoSave(intervalMs: number): void;
    /**
     * Stop auto-save timer
     */
    stopAutoSave(): void;
    /**
     * Create a named checkpoint
     */
    checkpoint(name: string): Promise<string>;
    /**
     * List available checkpoints
     */
    listCheckpoints(): Promise<string[]>;
    /**
     * Restore from checkpoint
     */
    restoreCheckpoint(checkpointName: string): Promise<AgentState>;
    /**
     * Clear all state
     */
    clearState(): Promise<void>;
    /**
     * Generate unique session ID using ULID
     */
    private generateSessionId;
    /**
     * Create empty metrics object
     */
    private emptyMetrics;
}
//# sourceMappingURL=state-manager.d.ts.map