import type { TextDocuments } from "vscode-languageserver";
import type { TextDocument } from "vscode-languageserver-textdocument";
import { ModuleManager } from "../module-manager";
type ModuleData = NonNullable<ReturnType<ModuleManager["modules"]["get"]>>;
export declare class LspDocumentManager {
    private moduleManager;
    private moduleManagerStdPath;
    private evaluatedBuildProjects;
    private lastAnalyzedTextByUri;
    private analyzeGenerationByUri;
    private lastGoodModules;
    constructor(stdPath?: string);
    getStdPath(): string | null;
    attachToDocuments(documents: TextDocuments<TextDocument>, onDiagnostics: (uri: string) => void): void;
    analyzeDocument(document: TextDocument, onDiagnostics: (uri: string) => void): void;
    getModule(uri: string): {
        moduleValue: import("../value").StructValue;
        moduleError: Error | undefined;
        evaluator: import("../evaluator").default;
    } | undefined;
    getModuleForCompletion(uri: string): ModuleData | undefined;
    getLastGoodModule(uri: string): ModuleData | undefined;
    getModuleManager(): ModuleManager;
    private ensureStdPathForUri;
    private findStdPath;
    private findBuildYoForUri;
    private ensureBuildImportsResolved;
    private findDependencyDir;
    private resolveDepModuleRoot;
}
export {};
