export interface LSPClientOptions {
    command: string;
    args?: string[];
    cwd?: string;
    env?: Record<string, string>;
    rootUri: string;
}
export declare class LSPClient {
    private process;
    private requestId;
    private pending;
    private handlers;
    private buffer;
    private capabilities;
    private initialized;
    private initPromise;
    private options;
    constructor(options: LSPClientOptions);
    private sendMessage;
    private handleData;
    private request;
    private notify;
    private handleRequest;
    onNotification(method: string, handler: (params: unknown) => void): void;
    start(): Promise<void>;
    initializedPromise(): Promise<void>;
    openDocument(uri: string, languageId: string, text: string): Promise<void>;
    closeDocument(uri: string): Promise<void>;
    hover(uri: string, line: number, column: number): Promise<unknown>;
    definition(uri: string, line: number, column: number): Promise<unknown>;
    references(uri: string, line: number, column: number): Promise<unknown>;
    documentSymbols(uri: string): Promise<unknown>;
    workspaceSymbols(query: string): Promise<unknown>;
    shutdown(): Promise<void>;
    isRunning(): boolean;
}
//# sourceMappingURL=client.d.ts.map