/**
 * Mode Manager Singleton
 *
 * Manages agent mode state across tool calls with transition history tracking.
 * Provides mode-specific tool recommendations for context-appropriate workflows.
 */
/**
 * Available agent operation modes
 */
export type Mode = "planning" | "editing" | "analysis" | "debugging" | "refactoring" | "documentation" | "interactive" | "one-shot";
/**
 * Current state of the agent mode
 */
export interface ModeState {
    /** Current active mode */
    currentMode: Mode;
    /** Previous mode before the last transition */
    previousMode?: Mode;
    /** Timestamp of the current mode activation */
    timestamp: Date;
    /** Optional context data for the mode */
    context?: Record<string, unknown>;
}
/**
 * Record of a mode transition
 */
export interface ModeTransition {
    /** Mode transitioned from */
    from: Mode;
    /** Mode transitioned to */
    to: Mode;
    /** When the transition occurred */
    timestamp: Date;
    /** Optional reason for the transition */
    reason?: string;
}
/**
 * Singleton class for managing agent mode state
 */
declare class ModeManager {
    private state;
    private history;
    /**
     * Get the current active mode
     */
    getCurrentMode(): Mode;
    /**
     * Set a new mode and record the transition
     *
     * @param mode - The new mode to activate
     * @param reason - Optional reason for the mode change
     * @returns The new mode state
     */
    setMode(mode: Mode, reason?: string): ModeState;
    /**
     * Get recommended tools for a specific mode
     *
     * @param mode - The mode to get tools for (defaults to current mode)
     * @returns Array of recommended tool names
     */
    getToolsForMode(mode?: Mode): string[];
    /**
     * Get the full history of mode transitions
     *
     * @returns Array of all recorded transitions
     */
    getHistory(): ModeTransition[];
    /**
     * Reset the mode manager to its initial state
     */
    reset(): void;
}
/**
 * Singleton instance of the ModeManager
 *
 * Use this exported instance to access mode management functionality
 * across the application.
 *
 * @example
 * ```typescript
 * import { modeManager } from './mode-manager.js';
 *
 * // Get current mode
 * const mode = modeManager.getCurrentMode();
 *
 * // Change mode
 * modeManager.setMode('planning', 'Starting design phase');
 *
 * // Get tools for current mode
 * const tools = modeManager.getToolsForMode();
 * ```
 */
export declare const modeManager: ModeManager;
export {};
//# sourceMappingURL=mode-manager.d.ts.map