/**
 * Infrastructure Facade
 *
 * Encapsulates infrastructure services management.
 * This facade handles:
 * - MCP (Model Context Protocol) servers
 * - Sandbox management for command execution
 * - Lifecycle hooks
 * - Prompt cache management
 * - Plugin marketplace
 */
import type { MCPClient } from '../../mcp/mcp-client.js';
import type { SandboxManager } from '../../security/sandbox.js';
import type { HooksManager } from '../../hooks/lifecycle-hooks.js';
import type { PromptCacheManager } from '../../optimization/prompt-cache.js';
import type { PluginMarketplace } from '../../plugins/marketplace.js';
/**
 * Command validation result
 */
export interface CommandValidation {
    valid: boolean;
    reason?: string;
}
/**
 * Prompt cache statistics
 */
export interface PromptCacheStats {
    hits: number;
    misses: number;
    hitRate: number;
    totalTokensSaved: number;
    estimatedCostSaved: number;
    entries: number;
}
/**
 * Dependencies required by InfrastructureFacade
 */
export interface InfrastructureFacadeDeps {
    mcpClient: MCPClient;
    sandboxManager: SandboxManager;
    hooksManager: HooksManager;
    promptCacheManager: PromptCacheManager;
    marketplace: PluginMarketplace;
}
/**
 * Facade for infrastructure services in agents.
 *
 * Responsibilities:
 * - Managing MCP server connections and tools
 * - Validating commands through sandbox
 * - Managing lifecycle hooks
 * - Prompt caching operations
 * - Plugin marketplace access
 */
export declare class InfrastructureFacade {
    private readonly mcpClient;
    private readonly sandboxManager;
    private readonly hooksManager;
    private readonly promptCacheManager;
    private readonly marketplace;
    constructor(deps: InfrastructureFacadeDeps);
    /**
     * Connect to all configured MCP servers
     */
    connectMCPServers(): Promise<void>;
    /**
     * Get MCP connection status as formatted string
     */
    getMCPStatus(): string;
    /**
     * Get all tools from connected MCP servers
     */
    getMCPTools(): Promise<Map<string, unknown[]>>;
    /**
     * Get the MCP client instance (for advanced operations)
     */
    getMCPClient(): MCPClient;
    /**
     * Initialize MCP servers asynchronously
     * This is a fire-and-forget operation
     */
    initializeMCP(): void;
    /**
     * Get sandbox status as formatted string
     */
    getSandboxStatus(): string;
    /**
     * Validate a command against sandbox rules
     */
    validateCommand(command: string): CommandValidation;
    /**
     * Get the sandbox manager instance (for advanced operations)
     */
    getSandboxManager(): SandboxManager;
    /**
     * Get the hooks manager instance
     */
    getHooksManager(): HooksManager;
    /**
     * Get hooks status as formatted string
     */
    getHooksStatus(): string;
    /**
     * Get the prompt cache manager instance
     */
    getPromptCacheManager(): PromptCacheManager;
    /**
     * Get prompt cache statistics
     */
    getPromptCacheStats(): PromptCacheStats;
    /**
     * Format prompt cache statistics as string
     */
    formatPromptCacheStats(): string;
    /**
     * Get the plugin marketplace instance
     */
    getMarketplace(): PluginMarketplace;
}
