import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js"; import Context from "./Context.js"; import Visit from "./Visit.js"; /** * Visit with a shared context to enable communication between visits * * Need to implement: * - apply($jp) * - initialValue() */ export default abstract class VisitWithContext = Context> extends Visit { protected context: C; /** * @param context Shared context object */ constructor(context: C); /** * @return Visit name, defaults to class name */ get name(): string; /** * @returns Initial value stored in the shared context */ abstract initialValue(): T; /** * Applies the transformation to the given node * @param $jp The node to transform * @returns Transformation result */ abstract apply($jp: LaraJoinPoint): unknown; } //# sourceMappingURL=VisitWithContext.d.ts.map