import { Environment } from "@taplo/core";
export interface RpcMessage {
    jsonrpc: "2.0";
    method?: string;
    id?: string | number;
    params?: any;
    result?: any;
    error?: any;
}
export interface LspInterface {
    /**
     * Handler for RPC messages set from the LSP server.
     */
    onMessage: (message: RpcMessage) => void;
}
export declare class TaploLsp {
    private env;
    private lspInner;
    private static taplo;
    private static initializing;
    private constructor();
    static initialize(env: Environment, lspInterface: LspInterface): Promise<TaploLsp>;
    send(message: RpcMessage): void;
    dispose(): void;
}
