/**
 * LSP CLI Commands
 *
 * Provides CLI interface to LSP operations: refs, def, hover, symbols, search.
 * Accepts symbol NAME (not line:char) for ease of use.
 *
 * @module cli/commands/lsp
 */
import { Command } from 'commander';
/**
 * Position in a file (0-indexed)
 */
export interface SymbolPosition {
    line: number;
    character: number;
}
/**
 * Find the position of a symbol in a file by name.
 * Uses regex with word boundaries to find the symbol declaration.
 *
 * @param filePath - Path to the file
 * @param symbolName - Name of the symbol to find
 * @returns Position (0-indexed) or null if not found
 */
export declare function findSymbolPosition(filePath: string, symbolName: string): SymbolPosition | null;
/**
 * Find all references to a symbol
 */
export declare function handleLspRefs(projectRoot: string, filePath: string, symbolName: string): Promise<void>;
/**
 * Go to definition of a symbol
 */
export declare function handleLspDef(projectRoot: string, filePath: string, symbolName: string): Promise<void>;
/**
 * Get hover/type information for a symbol
 */
export declare function handleLspHover(projectRoot: string, filePath: string, symbolName: string): Promise<void>;
/**
 * List all symbols in a file
 */
export declare function handleLspSymbols(projectRoot: string, filePath: string): Promise<void>;
/**
 * Search for symbols in workspace
 */
export declare function handleLspSearch(projectRoot: string, query: string): Promise<void>;
/**
 * Create the LSP command for Commander.js
 */
export declare function createLspCommand(): Command;
/**
 * Warm up LSP by pre-indexing the workspace
 * v1.0.197: Added for session-start integration
 */
export declare function handleLspWarmup(projectRoot: string, entryFiles: string[], quiet: boolean): Promise<void>;
/**
 * Show LSP status
 */
export declare function handleLspStatus(projectRoot: string): Promise<void>;
/**
 * Language to LSP plugin mapping
 * Uses boostvolt/claude-code-lsps marketplace
 */
/**
 * Language to LSP plugin mapping
 * 22 languages supported (matching boostvolt/claude-code-lsps marketplace)
 */
export declare const LANGUAGE_TO_LSP_PLUGIN: Record<string, string>;
/**
 * Information about a detected language
 */
export interface LanguageInfo {
    name: string;
    fileCount: number;
    plugin: string;
    binaryInstallCommand: string;
    pluginInstallCommand: string;
    foundInRepos: string[];
}
/**
 * Result of scanning languages across repositories
 */
export interface LanguageScanResult {
    success: boolean;
    languages: LanguageInfo[];
    reposScanned: string[];
    totalFiles: number;
    error?: string;
}
/**
 * Options for language scanning
 */
export interface ScanOptions {
    maxLanguages?: number;
    minFileCount?: number;
    maxDepth?: number;
}
/**
 * Scan for languages across a project and its nested repositories
 *
 * @param projectRoot - Root directory to scan
 * @param options - Scan options
 * @returns Language scan results
 */
export declare function scanLanguagesAcrossRepos(projectRoot: string, options?: ScanOptions): Promise<LanguageScanResult>;
interface SetupOptions {
    maxLanguages: number;
    minFileCount: number;
    dryRun: boolean;
    scope: 'user' | 'project' | 'local';
}
/**
 * Interactive LSP setup - scans project and prompts user for plugin installation
 */
export declare function handleLspSetup(projectRoot: string, options: SetupOptions): Promise<void>;
export {};
//# sourceMappingURL=lsp.d.ts.map