import { AstNode, AstNodeDescription, Cancellation, LangiumDocument, MultiMap, LocalSymbols, ReferenceInfo, Scope, ScopeComputation, ScopeProvider, WorkspaceCache } from "langium"; import { ArtifactExpression, IdentifierExpression, Import, Package, TypeRef, StructExpression } from "./generated/ast.js"; import type { KumoriServices } from "./kumori.js"; export declare const SELF = "self"; export declare const VAR = "var"; export declare const INTERFACE = "interface"; export declare class KumoriScopeComputation implements ScopeComputation { readonly svcs: KumoriServices; protected readonly nameProvider: import("langium").NameProvider; protected readonly descriptions: import("langium").AstNodeDescriptionProvider; protected readonly pkg: import("./kumori-package.js").KumoriPackages; constructor(svcs: KumoriServices); collectExportedSymbols(document: LangiumDocument, cancelToken?: Cancellation.CancellationToken): Promise; collectLocalSymbols(document: LangiumDocument, cancelToken?: Cancellation.CancellationToken): Promise; computeArtifactScopes(ctx: Cancellation.CancellationToken, artifact: Package["artifacts"][number], scopes: MultiMap, describe: DescriptionBuiler): Promise; computeArtifactVariables(ctx: Cancellation.CancellationToken, artifact: ArtifactExpression, describe: DescriptionBuiler): Promise; computeArtifactProperties(ctx: Cancellation.CancellationToken, struct: ArtifactExpression, scopes: MultiMap, describe: DescriptionBuiler): Promise; computeArtifacBodyScopesInternal(ctx: Cancellation.CancellationToken, struct: ArtifactExpression | StructExpression, scopes: MultiMap, describe: DescriptionBuiler): Promise; } type DescriptionBuiler = (node: AstNode, name: string) => AstNodeDescription; export declare class KumoriScopeProviver implements ScopeProvider { readonly svcs: KumoriServices; protected readonly reflection: import("langium").AstReflection; protected readonly indexManager: import("langium").IndexManager; protected readonly documents: import("langium").LangiumDocuments; protected readonly descriptions: import("langium").AstNodeDescriptionProvider; protected readonly pkg: import("./kumori-package.js").KumoriPackages; protected readonly stdlibScopeCache: WorkspaceCache; protected readonly packageScopeCache: WorkspaceCache; protected readonly moduleExportsCache: WorkspaceCache; constructor(svcs: KumoriServices); getScope(context: ReferenceInfo): Scope; getScopeInternal(context: ReferenceInfo): Scope; getGenericScope(node: AstNode): Scope; getImportScope(node: Import): Scope; getIdentifierExpressionScope(node: IdentifierExpression | TypeRef): Scope; getLocalScope(node: AstNode): Scope; getImportsScope(node: AstNode): Scope; getImportedItems(imprt: Import): AstNodeDescription[]; getModuleExports(imprt: Import): AstNodeDescription[]; protected getPackageScope(node: AstNode): Scope; protected getHeaderPackageScope(node: AstNode): Scope; protected getStdlibScope(): Scope; } export {};