import type { Diagnostic, ResolvedServer } from './types'; declare class LSPServerManager { private static instance; private clients; private cleanupInterval; private readonly IDLE_TIMEOUT; private constructor(); private registerProcessCleanup; static getInstance(): LSPServerManager; private getKey; private startCleanupTimer; private cleanupIdleClients; getClient(root: string, server: ResolvedServer): Promise; releaseClient(root: string, serverId: string): void; isServerInitializing(root: string, serverId: string): boolean; stopAll(): Promise; } export declare const lspManager: LSPServerManager; export declare class LSPClient { private root; private server; private proc; private connection; private openedFiles; private stderrBuffer; private processExited; private diagnosticsStore; constructor(root: string, server: ResolvedServer); start(): Promise; private startStderrReading; initialize(): Promise; openFile(filePath: string): Promise; definition(filePath: string, line: number, character: number): Promise; references(filePath: string, line: number, character: number, includeDeclaration?: boolean): Promise; diagnostics(filePath: string): Promise<{ items: Diagnostic[]; }>; rename(filePath: string, line: number, character: number, newName: string): Promise; isAlive(): boolean; stop(): Promise; } export {};