/** * Lionweb interoperability module. * @module interop/lionweb */ import { Classifier, Concept, Containment, Datatype, Feature as LWFeature, Id, InstantiationFacade, Language, Node as LWNodeInterface, SerializationChunk } from "@lionweb/core"; import { NodeAdapter, Issue, Node, NodeDefinition, Position, TraceNode } from ".."; export { STARLASU_LANGUAGE } from "./lionweb-starlasu-language"; export declare const ASTNode: Concept; export declare const PositionFeature: Containment; export declare const PositionClassifier: Classifier; export declare const PointClassifier: Datatype; export declare class TylasuWrapper implements LWNodeInterface { readonly id: Id; readonly parent: LWNodeInterface | undefined; readonly annotations: LWNodeInterface[]; constructor(id: Id, parent: LWNodeInterface | undefined, annotations: LWNodeInterface[]); } export declare class TylasuNodeWrapper extends TylasuWrapper { readonly node: Node; constructor(node: Node, id: Id, parent: LWNodeInterface | undefined, annotations: LWNodeInterface[]); } export declare class LanguageMapping { readonly nodeTypes: Map; readonly classifiers: Map; register(nodeType: any, classifier: Classifier): void; extend(languageMapping: LanguageMapping): this; } export declare class TylasuInstantiationFacade implements InstantiationFacade { languageMappings: LanguageMapping[]; protected readonly concepts: Map; constructor(languageMappings?: LanguageMapping[]); encodingOf(): unknown; nodeFor(parent: TylasuWrapper | undefined, classifier: Classifier, id: string): TylasuWrapper; private instantiateNode; setFeatureValue(node: TylasuWrapper, feature: LWFeature, value: unknown): void; } export declare const STARLASU_LANGUAGE_MAPPING: LanguageMapping; export declare function findClassifier(language: Language, id: string): Classifier; export declare const AST_NODE_CLASSIFIER: Classifier; export declare class LionwebNode extends NodeAdapter { protected readonly _nodeDefinition: NodeDefinition; protected readonly classifier: Classifier; protected lwnode: LWNodeInterface; parent: LionwebNode; get nodeDefinition(): NodeDefinition; constructor(_nodeDefinition: NodeDefinition, classifier: Classifier, lwnode: LWNodeInterface); get(...path: string[]): LionwebNode | undefined; getAttributes(): { [p: string]: any; }; getId(): string; getIssues(property?: string): Issue[] | undefined; getPosition(property?: string): Position | undefined; isDeclaration(): boolean; isExpression(): boolean; isStatement(): boolean; isOfKnownType(name: string): boolean; equals(other: NodeAdapter | undefined): boolean; } export declare function deserializeToTylasuNodes(chunk: SerializationChunk, languages: Language[], languageMappings?: LanguageMapping[], dependentNodes?: LWNodeInterface[]): Node[]; export declare function deserializeToTraceNodes(chunk: SerializationChunk, languages: Language[], dependentNodes?: LWNodeInterface[]): TraceNode[];