import { VfsInterface } from "../types";
import { LanguageServerClient } from "@marimo-team/codemirror-languageserver";
import { Extension } from "@codemirror/state";
import { LanguageServer } from "@volar/language-server";
import { EditorView } from "@codemirror/view";
export type LSPClientExtension = {
    client: LanguageServerClient;
} & Extension;
export type ClientOptions = {
    view: EditorView;
    language: string;
    path: string;
    fs: VfsInterface;
};
export declare const languageServerFactory: Map<string, (args: {
    fs: VfsInterface;
}) => Promise<{
    server: LanguageServer;
}>>;
export declare const lspWorkers: Map<string, SharedWorker>;
export declare namespace LSP {
    function worker(language: string, fs: VfsInterface): Promise<{
        worker: SharedWorker;
    }>;
    function client({ fs, language, path, view }: ClientOptions): Promise<LSPClientExtension>;
}
