RProject: {
    asNodes<OtherInfo>(
        this: void,
        project: RProject<OtherInfo>,
    ): RNode<OtherInfo>[];
    collectAllIds<OtherInfo>(
        this: void,
        project: RProject<OtherInfo & ParentInformation>,
    ): Set<NodeId>;
    collectAllIdsWithStop<OtherInfo>(
        this: void,
        project: RProject<OtherInfo & ParentInformation>,
        stop: (node: RNode<OtherInfo & ParentInformation>) => boolean,
    ): Set<NodeId>;
    is<OtherInfo = object>(
        this: void,
        node: unknown,
    ): node is RProject<OtherInfo>;
    merge<Info = object>(
        this: void,
        projects: readonly RProject<Info>[],
    ): RProject<Info>;
    name: "RProject";
    visitAst<OtherInfo>(
        this: void,
        project: RProject<OtherInfo>,
        onVisit?: OnEnter<OtherInfo>,
        onExit?: OnExit<OtherInfo>,
    ): void;
}

Helper object to identify RProject nodes by their type and to provide related functions.

Type declaration

RNode.visitAst - to visit all nodes in the project