import type { ChildProcess } from "node:child_process";
export declare function encodeMessage(body: string): string;
export declare function decodeMessages(buffer: Buffer<ArrayBuffer>): {
    messages: unknown[];
    remaining: Buffer<ArrayBuffer>;
};
export declare class LspClient {
    private process;
    private nextId;
    private pending;
    private buffer;
    private openFiles;
    constructor(process: ChildProcess);
    initialize(rootUri: string): Promise<unknown>;
    request<T = unknown>(method: string, params: object): Promise<T>;
    notify(method: string, params: object): void;
    openFile(uri: string, content: string, languageId: string): Promise<void>;
    shutdown(): Promise<void>;
    private onData;
}
//# sourceMappingURL=lsp-client.d.ts.map