import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import type { Command } from "commander";
import type { DomainDiscoveryResult, DomainModule, DomainRegistryEntry } from "../shared/types/domain.types.js";
/**
 * Domain Registry class for managing domain discovery and registration
 */
export declare class DomainRegistry {
    private logger;
    private getLogger;
    private readonly domainsPath;
    private readonly registryMap;
    private discoveredDomains;
    constructor();
    /**
     * Discover all domains in the domains directory
     */
    discoverDomains(): Promise<DomainDiscoveryResult[]>;
    /**
     * Analyze a domain directory to check if it's a valid domain
     */
    private analyzeDomain;
    /**
     * Load a specific domain module
     */
    loadDomain(name: string): Promise<DomainModule | null>;
    /**
     * Load all valid domains
     */
    loadAllDomains(): Promise<DomainModule[]>;
    /**
     * Register all domain tools with the MCP server
     */
    registerAllTools(server: McpServer): Promise<void>;
    /**
     * Register all domain CLI commands with the Commander program
     */
    registerAllCli(program: Command): Promise<void>;
    /**
     * Register all domain resources with the MCP server
     */
    registerAllResources(server: McpServer): Promise<void>;
    /**
     * Get registry status and health information
     */
    getRegistryStatus(): {
        discovered: number;
        loaded: number;
        failed: number;
        entries: DomainRegistryEntry[];
    };
}
export declare const domainRegistry: DomainRegistry;
