/** * LSP Client * * Manages a single language server process: spawning, initialising, * request/notification dispatch, and shutdown. * * Protocol framing (Content-Length / JSON-RPC) is delegated to the * LSPProtocolAdapter so that the underlying library can be swapped. */ import type { LSPClientState, LSPServerConfig } from './lsp.types.js'; /** * LSP Client — manages a single language server process */ export declare class LSPClient { private readonly config; private connection; private readonly projectRoot; private state; constructor(config: LSPServerConfig, projectRoot: string); /** * Get the current client state */ getState(): LSPClientState; /** * Start the language server and send initialize request */ start(): Promise; /** * Send a JSON-RPC request and wait for response */ sendRequest(method: string, params?: unknown): Promise; /** * Send a JSON-RPC notification (no response expected) */ sendNotification(method: string, params?: unknown): void; /** * Graceful shutdown */ shutdown(): Promise; /** * Clean up the connection */ private cleanup; } //# sourceMappingURL=lsp-client.d.ts.map