/**
 * Moltbot Hooks Manager
 *
 * Unified manager for all Moltbot-inspired hooks: intro, session persistence,
 * and command logging. Provides singleton access and configuration management.
 */
import { EventEmitter } from "events";
import type { MoltbotHooksConfig, IntroResult, PersistedSession } from "./types.js";
import { IntroHookManager } from "./intro-hook-manager.js";
import { SessionPersistenceManager } from "./session-persistence-manager.js";
import { CommandLogger } from "./command-logger.js";
/**
 * Unified manager for all Moltbot-inspired hooks
 */
export declare class MoltbotHooksManager extends EventEmitter {
    private introManager;
    private sessionManager;
    private commandLogger;
    private workingDirectory;
    private config;
    constructor(workingDirectory: string, config?: Partial<MoltbotHooksConfig>);
    /**
     * Initialize session with intro loading
     */
    initializeSession(sessionId?: string): Promise<{
        intro: IntroResult;
        session: PersistedSession;
    }>;
    /**
     * Resume the most recent session
     */
    resumeLastSession(): Promise<{
        intro: IntroResult;
        session: PersistedSession | null;
    }>;
    /**
     * Get intro manager
     */
    getIntroManager(): IntroHookManager;
    /**
     * Get session manager
     */
    getSessionManager(): SessionPersistenceManager;
    /**
     * Get command logger
     */
    getCommandLogger(): CommandLogger;
    /**
     * End session and cleanup
     */
    endSession(): Promise<void>;
    /**
     * Sync config from sub-managers
     */
    private syncConfig;
    /**
     * Get configuration (synced from sub-managers)
     */
    getConfig(): MoltbotHooksConfig;
    /**
     * Save configuration to file
     */
    saveConfig(configPath?: string): void;
    /**
     * Load configuration from file
     */
    loadConfig(configPath?: string): void;
    /**
     * Format status for display
     */
    formatStatus(): string;
    /**
     * Dispose all resources
     */
    dispose(): void;
}
/**
 * Get or create Moltbot hooks manager instance
 */
export declare function getMoltbotHooksManager(workingDirectory?: string, config?: Partial<MoltbotHooksConfig>): MoltbotHooksManager;
/**
 * Reset Moltbot hooks manager instance
 */
export declare function resetMoltbotHooksManager(): void;
