import { LanguageServerClient as CodeMirrorLanguageServerClient, languageServerWithClient } from "@marimo-team/codemirror-languageserver";
import { Client } from "@open-rpc/client-js";
import { RequestArguments } from "@open-rpc/client-js/build/ClientInterface";
type ReadyCallback = (capabilities: CodeMirrorLanguageServerClient["capabilities"]) => void;
export declare class LanguageServerClient {
    private isReady;
    private callbacks;
    private timeout;
    languageServerClient: CodeMirrorLanguageServerClient;
    rpcClient: Client;
    constructor(options: ConstructorParameters<typeof CodeMirrorLanguageServerClient>[0] & {
        timeout: number;
    });
    /**
     * Send a request to the language server.
     * @param requestObject
     * @param timeout Optional timeout for the request in ms. Defaults to the timeout set in the language server client
     */
    request(requestObject: RequestArguments, timeout?: number): Promise<any>;
    /** Create an extension for codemirror. */
    extension(options: Omit<Parameters<typeof languageServerWithClient>[0], "client">): import("@codemirror/state").Extension[];
    onReady(callback: ReadyCallback): void;
    /** Warning: This can return null if the client is not ready yet. */
    getCapabilities(): CodeMirrorLanguageServerClient["capabilities"] | null;
    get ready(): boolean;
}
export {};
