/**
 * ServerRegistry - Registry for LSP server configurations
 *
 * Manages both built-in and custom LSP server configurations.
 *
 * @see spec.md US-004: Custom LSP Registration
 * @satisfies AC-US4-01
 */
/**
 * Configuration for an LSP server
 */
export interface ServerConfig {
    /** Command to start the server */
    command: string;
    /** Command line arguments */
    args?: string[];
    /** File patterns this server handles */
    filePatterns?: string[];
    /** Language ID for the server */
    languageId?: string;
    /** Initialization options */
    initializationOptions?: Record<string, unknown>;
}
/**
 * Configuration passed to ServerRegistry
 */
export interface RegistryConfig {
    servers?: Record<string, ServerConfig>;
}
/**
 * Registry for managing LSP server configurations
 */
export declare class ServerRegistry {
    private readonly servers;
    private readonly customServers;
    constructor(config: RegistryConfig);
    /**
     * Get server configuration by name
     *
     * @param name - Server name (e.g., 'typescript', 'myLang')
     * @returns Server configuration or undefined
     */
    get(name: string): ServerConfig | undefined;
    /**
     * List all available server names
     *
     * @returns Array of server names
     */
    listAll(): string[];
    /**
     * List only custom server names
     *
     * @returns Array of custom server names
     */
    listCustom(): string[];
    /**
     * Check if a server is custom (not built-in)
     *
     * @param name - Server name
     * @returns True if the server is custom
     */
    isCustom(name: string): boolean;
}
//# sourceMappingURL=server-registry.d.ts.map