/**
 * LSP Bootstrapper for Living Docs
 *
 * Initializes LSP clients only for languages detected during discovery.
 * Checks if server binaries are installed before attempting initialization.
 *
 * @module core/living-docs/lsp-bootstrapper
 */
import { type LSPManagerOptions } from '../lsp/lsp-manager.js';
/**
 * Maps language names to their primary server binary commands.
 * Covers all 10 supported languages. First match wins.
 */
export declare const LANGUAGE_TO_SERVER_BINARY: Record<string, string[]>;
/**
 * Minimal interface for the LSP manager used by the bootstrapper.
 * Allows injection of mocks in tests without module-level mocking.
 */
export interface LspManagerLike {
    initialize(): Promise<void>;
    shutdown(): Promise<void>;
    getStatistics(): {
        availableLanguages: string[];
        clientCount: number;
    };
}
/**
 * Context returned by the bootstrapper, carrying initialized LSP clients
 * through the pipeline for downstream phases.
 */
export interface LspContext {
    /** Initialized LSP manager (null if no servers available) */
    lspManager: LspManagerLike | null;
    /** Languages that have active LSP clients */
    availableLanguages: string[];
    /** Languages that were detected but whose server was not installed */
    skippedLanguages: string[];
}
export interface LspBootstrapperOptions {
    /** Factory for creating LSP manager instances (defaults to real LSPManager) */
    createLspManager?: (opts: LSPManagerOptions) => LspManagerLike;
    /** Function to check binary availability (defaults to which/where) */
    isBinaryAvailable?: (binary: string) => boolean;
}
/**
 * Smart LSP bootstrapper that activates only relevant language servers.
 */
export declare class LspBootstrapper {
    private projectRoot;
    private lspManager;
    private createLspManager;
    private checkBinary;
    constructor(projectRoot: string, options?: LspBootstrapperOptions);
    /**
     * Bootstrap LSP clients for the given detected languages.
     * Only initializes servers whose binaries are installed.
     */
    bootstrap(languagesDetected: string[]): Promise<LspContext>;
    /**
     * Shutdown all LSP clients.
     */
    shutdown(): Promise<void>;
}
//# sourceMappingURL=lsp-bootstrapper.d.ts.map