import type { KumoriServices } from "./kumori.js"; import { AstNode, AstNodeDescription, CstNode, LangiumDocument, LinkingError, Reference, ReferenceInfo, Linker, Cancellation, MultiReference } from "langium"; export declare class KumoriLinker implements Linker { private readonly svcs; protected readonly reflection: import("langium").AstReflection; protected readonly scopeProvider: import("langium").ScopeProvider; protected readonly astNodeLocator: import("langium").AstNodeLocator; protected readonly langiumDocuments: () => import("langium").LangiumDocuments; constructor(svcs: KumoriServices); link(document: LangiumDocument, cancelToken?: Cancellation.CancellationToken): Promise; doLink(refInfo: ReferenceInfo, document: LangiumDocument): void; unlink(document: LangiumDocument): void; getCandidate(refInfo: ReferenceInfo): AstNodeDescription | LinkingError; getCandidates(refInfo: ReferenceInfo): AstNodeDescription[] | LinkingError; buildReference(node: AstNode, property: string, refNode: CstNode | undefined, refText: string): Reference; buildMultiReference(node: AstNode, property: string, refNode: CstNode | undefined, refText: string): MultiReference; protected throwCyclicReferenceError(node: AstNode, property: string, refText: string): never; getLinkedNode(refInfo: ReferenceInfo): { node?: AstNode; descr?: AstNodeDescription; error?: LinkingError; }; loadAstNode(nodeDescription: AstNodeDescription): AstNode | undefined; createLinkingError(refInfo: ReferenceInfo, targetDescription?: AstNodeDescription): LinkingError; }