Traqula
    Preparing search index...
    mapOperationSub: <Safe extends Safeness = "safe", OutType = unknown>(
        startObject: object,
        nodeCallBacks: {
            add?: {
                preVisitor?: (orig: Algebra.Add) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Add>,
                    orig: Algebra.Add,
                ) => unknown;
            };
            alt?: {
                preVisitor?: (orig: Algebra.Alt) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Alt>,
                    orig: Algebra.Alt,
                ) => unknown;
            };
            ask?: {
                preVisitor?: (orig: Algebra.Ask) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Ask>,
                    orig: Algebra.Ask,
                ) => unknown;
            };
            bgp?: {
                preVisitor?: (orig: Algebra.Bgp) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Bgp>,
                    orig: Algebra.Bgp,
                ) => unknown;
            };
            clear?: {
                preVisitor?: (orig: Algebra.Clear) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Clear>,
                    orig: Algebra.Clear,
                ) => unknown;
            };
            compositeupdate?: {
                preVisitor?: (orig: Algebra.CompositeUpdate) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.CompositeUpdate>,
                    orig: Algebra.CompositeUpdate,
                ) => unknown;
            };
            construct?: {
                preVisitor?: (orig: Algebra.Construct) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Construct>,
                    orig: Algebra.Construct,
                ) => unknown;
            };
            copy?: {
                preVisitor?: (orig: Algebra.Copy) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Copy>,
                    orig: Algebra.Copy,
                ) => unknown;
            };
            create?: {
                preVisitor?: (orig: Algebra.Create) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Create>,
                    orig: Algebra.Create,
                ) => unknown;
            };
            deleteinsert?: {
                preVisitor?: (orig: Algebra.DeleteInsert) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.DeleteInsert>,
                    orig: Algebra.DeleteInsert,
                ) => unknown;
            };
            describe?: {
                preVisitor?: (orig: Algebra.Describe) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Describe>,
                    orig: Algebra.Describe,
                ) => unknown;
            };
            distinct?: {
                preVisitor?: (orig: Algebra.Distinct) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Distinct>,
                    orig: Algebra.Distinct,
                ) => unknown;
            };
            drop?: {
                preVisitor?: (orig: Algebra.Drop) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Drop>,
                    orig: Algebra.Drop,
                ) => unknown;
            };
            expression?: {
                preVisitor?: (orig: Algebra.Expression) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Expression>,
                    orig: Algebra.Expression,
                ) => unknown;
            };
            extend?: {
                preVisitor?: (orig: Algebra.Extend) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Extend>,
                    orig: Algebra.Extend,
                ) => unknown;
            };
            filter?: {
                preVisitor?: (orig: Algebra.Filter) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Filter>,
                    orig: Algebra.Filter,
                ) => unknown;
            };
            from?: {
                preVisitor?: (orig: Algebra.From) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.From>,
                    orig: Algebra.From,
                ) => unknown;
            };
            graph?: {
                preVisitor?: (orig: Algebra.Graph) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Graph>,
                    orig: Algebra.Graph,
                ) => unknown;
            };
            group?: {
                preVisitor?: (orig: Algebra.Group) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Group>,
                    orig: Algebra.Group,
                ) => unknown;
            };
            inv?: {
                preVisitor?: (orig: Algebra.Inv) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Inv>,
                    orig: Algebra.Inv,
                ) => unknown;
            };
            join?: {
                preVisitor?: (orig: Algebra.Join) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Join>,
                    orig: Algebra.Join,
                ) => unknown;
            };
            leftjoin?: {
                preVisitor?: (orig: Algebra.LeftJoin) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.LeftJoin>,
                    orig: Algebra.LeftJoin,
                ) => unknown;
            };
            link?: {
                preVisitor?: (orig: Algebra.Link) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Link>,
                    orig: Algebra.Link,
                ) => unknown;
            };
            load?: {
                preVisitor?: (orig: Algebra.Load) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Load>,
                    orig: Algebra.Load,
                ) => unknown;
            };
            minus?: {
                preVisitor?: (orig: Algebra.Minus) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Minus>,
                    orig: Algebra.Minus,
                ) => unknown;
            };
            move?: {
                preVisitor?: (orig: Algebra.Move) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Move>,
                    orig: Algebra.Move,
                ) => unknown;
            };
            nop?: {
                preVisitor?: (orig: Algebra.Nop) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Nop>,
                    orig: Algebra.Nop,
                ) => unknown;
            };
            nps?: {
                preVisitor?: (orig: Algebra.Nps) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Nps>,
                    orig: Algebra.Nps,
                ) => unknown;
            };
            OneOrMorePath?: {
                preVisitor?: (orig: Algebra.OneOrMorePath) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.OneOrMorePath>,
                    orig: Algebra.OneOrMorePath,
                ) => unknown;
            };
            orderby?: {
                preVisitor?: (orig: Algebra.OrderBy) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.OrderBy>,
                    orig: Algebra.OrderBy,
                ) => unknown;
            };
            path?: {
                preVisitor?: (orig: Algebra.Path) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Path>,
                    orig: Algebra.Path,
                ) => unknown;
            };
            pattern?: {
                preVisitor?: (orig: Algebra.Pattern) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Pattern>,
                    orig: Algebra.Pattern,
                ) => unknown;
            };
            project?: {
                preVisitor?: (orig: Algebra.Project) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Project>,
                    orig: Algebra.Project,
                ) => unknown;
            };
            reduced?: {
                preVisitor?: (orig: Algebra.Reduced) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Reduced>,
                    orig: Algebra.Reduced,
                ) => unknown;
            };
            seq?: {
                preVisitor?: (orig: Algebra.Seq) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Seq>,
                    orig: Algebra.Seq,
                ) => unknown;
            };
            service?: {
                preVisitor?: (orig: Algebra.Service) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Service>,
                    orig: Algebra.Service,
                ) => unknown;
            };
            slice?: {
                preVisitor?: (orig: Algebra.Slice) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Slice>,
                    orig: Algebra.Slice,
                ) => unknown;
            };
            union?: {
                preVisitor?: (orig: Algebra.Union) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Union>,
                    orig: Algebra.Union,
                ) => unknown;
            };
            values?: {
                preVisitor?: (orig: Algebra.Values) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.Values>,
                    orig: Algebra.Values,
                ) => unknown;
            };
            ZeroOrMorePath?: {
                preVisitor?: (orig: Algebra.ZeroOrMorePath) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.ZeroOrMorePath>,
                    orig: Algebra.ZeroOrMorePath,
                ) => unknown;
            };
            ZeroOrOnePath?: {
                preVisitor?: (orig: Algebra.ZeroOrOnePath) => TransformContext;
                transform?: (
                    copy: SafeWrap<Safe, Algebra.ZeroOrOnePath>,
                    orig: Algebra.ZeroOrOnePath,
                ) => unknown;
            };
        },
        nodeSpecificCallBacks: {
            add?: {};
            alt?: {};
            ask?: {};
            bgp?: {};
            clear?: {};
            compositeupdate?: {};
            construct?: {};
            copy?: {};
            create?: {};
            deleteinsert?: {};
            describe?: {};
            distinct?: {};
            drop?: {};
            expression?: {
                aggregate?: {
                    preVisitor?: (
                        op:
                            | Algebra.AggregateExpression
                            | Algebra.GroupConcatExpression
                            | Algebra.BoundAggregate,
                    ) => TransformContext;
                    transform?: (
                        op: SafeWrap<
                            Safe,
                            | Algebra.AggregateExpression
                            | Algebra.GroupConcatExpression
                            | Algebra.BoundAggregate,
                        >,
                    ) => unknown;
                };
                existence?: {
                    preVisitor?: (op: Algebra.ExistenceExpression) => TransformContext;
                    transform?: (op: SafeWrap<Safe, Algebra.ExistenceExpression>) => unknown;
                };
                named?: {
                    preVisitor?: (op: Algebra.NamedExpression) => TransformContext;
                    transform?: (op: SafeWrap<Safe, Algebra.NamedExpression>) => unknown;
                };
                operator?: {
                    preVisitor?: (op: Algebra.OperatorExpression) => TransformContext;
                    transform?: (op: SafeWrap<Safe, Algebra.OperatorExpression>) => unknown;
                };
                term?: {
                    preVisitor?: (op: Algebra.TermExpression) => TransformContext;
                    transform?: (op: SafeWrap<Safe, Algebra.TermExpression>) => unknown;
                };
                wildcard?: {
                    preVisitor?: (op: Algebra.WildcardExpression) => TransformContext;
                    transform?: (op: SafeWrap<Safe, Algebra.WildcardExpression>) => unknown;
                };
            };
            extend?: {};
            filter?: {};
            from?: {};
            graph?: {};
            group?: {};
            inv?: {};
            join?: {};
            leftjoin?: {};
            link?: {};
            load?: {};
            minus?: {};
            move?: {};
            nop?: {};
            nps?: {};
            OneOrMorePath?: {};
            orderby?: {};
            path?: {};
            pattern?: {};
            project?: {};
            reduced?: {};
            seq?: {};
            service?: {};
            slice?: {};
            union?: {};
            values?: {};
            ZeroOrMorePath?: {};
            ZeroOrOnePath?: {};
        },
    ) => Safe extends "unsafe" ? OutType : unknown = ...

    Type Declaration

      • <Safe extends Safeness = "safe", OutType = unknown>(
            startObject: object,
            nodeCallBacks: {
                add?: {
                    preVisitor?: (orig: Algebra.Add) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Add>,
                        orig: Algebra.Add,
                    ) => unknown;
                };
                alt?: {
                    preVisitor?: (orig: Algebra.Alt) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Alt>,
                        orig: Algebra.Alt,
                    ) => unknown;
                };
                ask?: {
                    preVisitor?: (orig: Algebra.Ask) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Ask>,
                        orig: Algebra.Ask,
                    ) => unknown;
                };
                bgp?: {
                    preVisitor?: (orig: Algebra.Bgp) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Bgp>,
                        orig: Algebra.Bgp,
                    ) => unknown;
                };
                clear?: {
                    preVisitor?: (orig: Algebra.Clear) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Clear>,
                        orig: Algebra.Clear,
                    ) => unknown;
                };
                compositeupdate?: {
                    preVisitor?: (orig: Algebra.CompositeUpdate) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.CompositeUpdate>,
                        orig: Algebra.CompositeUpdate,
                    ) => unknown;
                };
                construct?: {
                    preVisitor?: (orig: Algebra.Construct) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Construct>,
                        orig: Algebra.Construct,
                    ) => unknown;
                };
                copy?: {
                    preVisitor?: (orig: Algebra.Copy) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Copy>,
                        orig: Algebra.Copy,
                    ) => unknown;
                };
                create?: {
                    preVisitor?: (orig: Algebra.Create) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Create>,
                        orig: Algebra.Create,
                    ) => unknown;
                };
                deleteinsert?: {
                    preVisitor?: (orig: Algebra.DeleteInsert) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.DeleteInsert>,
                        orig: Algebra.DeleteInsert,
                    ) => unknown;
                };
                describe?: {
                    preVisitor?: (orig: Algebra.Describe) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Describe>,
                        orig: Algebra.Describe,
                    ) => unknown;
                };
                distinct?: {
                    preVisitor?: (orig: Algebra.Distinct) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Distinct>,
                        orig: Algebra.Distinct,
                    ) => unknown;
                };
                drop?: {
                    preVisitor?: (orig: Algebra.Drop) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Drop>,
                        orig: Algebra.Drop,
                    ) => unknown;
                };
                expression?: {
                    preVisitor?: (orig: Algebra.Expression) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Expression>,
                        orig: Algebra.Expression,
                    ) => unknown;
                };
                extend?: {
                    preVisitor?: (orig: Algebra.Extend) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Extend>,
                        orig: Algebra.Extend,
                    ) => unknown;
                };
                filter?: {
                    preVisitor?: (orig: Algebra.Filter) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Filter>,
                        orig: Algebra.Filter,
                    ) => unknown;
                };
                from?: {
                    preVisitor?: (orig: Algebra.From) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.From>,
                        orig: Algebra.From,
                    ) => unknown;
                };
                graph?: {
                    preVisitor?: (orig: Algebra.Graph) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Graph>,
                        orig: Algebra.Graph,
                    ) => unknown;
                };
                group?: {
                    preVisitor?: (orig: Algebra.Group) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Group>,
                        orig: Algebra.Group,
                    ) => unknown;
                };
                inv?: {
                    preVisitor?: (orig: Algebra.Inv) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Inv>,
                        orig: Algebra.Inv,
                    ) => unknown;
                };
                join?: {
                    preVisitor?: (orig: Algebra.Join) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Join>,
                        orig: Algebra.Join,
                    ) => unknown;
                };
                leftjoin?: {
                    preVisitor?: (orig: Algebra.LeftJoin) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.LeftJoin>,
                        orig: Algebra.LeftJoin,
                    ) => unknown;
                };
                link?: {
                    preVisitor?: (orig: Algebra.Link) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Link>,
                        orig: Algebra.Link,
                    ) => unknown;
                };
                load?: {
                    preVisitor?: (orig: Algebra.Load) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Load>,
                        orig: Algebra.Load,
                    ) => unknown;
                };
                minus?: {
                    preVisitor?: (orig: Algebra.Minus) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Minus>,
                        orig: Algebra.Minus,
                    ) => unknown;
                };
                move?: {
                    preVisitor?: (orig: Algebra.Move) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Move>,
                        orig: Algebra.Move,
                    ) => unknown;
                };
                nop?: {
                    preVisitor?: (orig: Algebra.Nop) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Nop>,
                        orig: Algebra.Nop,
                    ) => unknown;
                };
                nps?: {
                    preVisitor?: (orig: Algebra.Nps) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Nps>,
                        orig: Algebra.Nps,
                    ) => unknown;
                };
                OneOrMorePath?: {
                    preVisitor?: (orig: Algebra.OneOrMorePath) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.OneOrMorePath>,
                        orig: Algebra.OneOrMorePath,
                    ) => unknown;
                };
                orderby?: {
                    preVisitor?: (orig: Algebra.OrderBy) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.OrderBy>,
                        orig: Algebra.OrderBy,
                    ) => unknown;
                };
                path?: {
                    preVisitor?: (orig: Algebra.Path) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Path>,
                        orig: Algebra.Path,
                    ) => unknown;
                };
                pattern?: {
                    preVisitor?: (orig: Algebra.Pattern) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Pattern>,
                        orig: Algebra.Pattern,
                    ) => unknown;
                };
                project?: {
                    preVisitor?: (orig: Algebra.Project) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Project>,
                        orig: Algebra.Project,
                    ) => unknown;
                };
                reduced?: {
                    preVisitor?: (orig: Algebra.Reduced) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Reduced>,
                        orig: Algebra.Reduced,
                    ) => unknown;
                };
                seq?: {
                    preVisitor?: (orig: Algebra.Seq) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Seq>,
                        orig: Algebra.Seq,
                    ) => unknown;
                };
                service?: {
                    preVisitor?: (orig: Algebra.Service) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Service>,
                        orig: Algebra.Service,
                    ) => unknown;
                };
                slice?: {
                    preVisitor?: (orig: Algebra.Slice) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Slice>,
                        orig: Algebra.Slice,
                    ) => unknown;
                };
                union?: {
                    preVisitor?: (orig: Algebra.Union) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Union>,
                        orig: Algebra.Union,
                    ) => unknown;
                };
                values?: {
                    preVisitor?: (orig: Algebra.Values) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.Values>,
                        orig: Algebra.Values,
                    ) => unknown;
                };
                ZeroOrMorePath?: {
                    preVisitor?: (orig: Algebra.ZeroOrMorePath) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.ZeroOrMorePath>,
                        orig: Algebra.ZeroOrMorePath,
                    ) => unknown;
                };
                ZeroOrOnePath?: {
                    preVisitor?: (orig: Algebra.ZeroOrOnePath) => TransformContext;
                    transform?: (
                        copy: SafeWrap<Safe, Algebra.ZeroOrOnePath>,
                        orig: Algebra.ZeroOrOnePath,
                    ) => unknown;
                };
            },
            nodeSpecificCallBacks: {
                add?: {};
                alt?: {};
                ask?: {};
                bgp?: {};
                clear?: {};
                compositeupdate?: {};
                construct?: {};
                copy?: {};
                create?: {};
                deleteinsert?: {};
                describe?: {};
                distinct?: {};
                drop?: {};
                expression?: {
                    aggregate?: {
                        preVisitor?: (
                            op:
                                | Algebra.AggregateExpression
                                | Algebra.GroupConcatExpression
                                | Algebra.BoundAggregate,
                        ) => TransformContext;
                        transform?: (
                            op: SafeWrap<
                                Safe,
                                | Algebra.AggregateExpression
                                | Algebra.GroupConcatExpression
                                | Algebra.BoundAggregate,
                            >,
                        ) => unknown;
                    };
                    existence?: {
                        preVisitor?: (op: Algebra.ExistenceExpression) => TransformContext;
                        transform?: (op: SafeWrap<Safe, Algebra.ExistenceExpression>) => unknown;
                    };
                    named?: {
                        preVisitor?: (op: Algebra.NamedExpression) => TransformContext;
                        transform?: (op: SafeWrap<Safe, Algebra.NamedExpression>) => unknown;
                    };
                    operator?: {
                        preVisitor?: (op: Algebra.OperatorExpression) => TransformContext;
                        transform?: (op: SafeWrap<Safe, Algebra.OperatorExpression>) => unknown;
                    };
                    term?: {
                        preVisitor?: (op: Algebra.TermExpression) => TransformContext;
                        transform?: (op: SafeWrap<Safe, Algebra.TermExpression>) => unknown;
                    };
                    wildcard?: {
                        preVisitor?: (op: Algebra.WildcardExpression) => TransformContext;
                        transform?: (op: SafeWrap<Safe, Algebra.WildcardExpression>) => unknown;
                    };
                };
                extend?: {};
                filter?: {};
                from?: {};
                graph?: {};
                group?: {};
                inv?: {};
                join?: {};
                leftjoin?: {};
                link?: {};
                load?: {};
                minus?: {};
                move?: {};
                nop?: {};
                nps?: {};
                OneOrMorePath?: {};
                orderby?: {};
                path?: {};
                pattern?: {};
                project?: {};
                reduced?: {};
                seq?: {};
                service?: {};
                slice?: {};
                union?: {};
                values?: {};
                ZeroOrMorePath?: {};
                ZeroOrOnePath?: {};
            },
        ): Safe extends "unsafe" ? OutType : unknown
      • Shares the functionality and first two arguments with this.transformNode. The third argument allows you to also transform based on the subType of objects. Note that when a callback for the subtype is provided, the callback for the general type is NOT executed.

        Type Parameters

        • Safe extends Safeness = "safe"
        • OutType = unknown

        Parameters

        • startObject: object
        • nodeCallBacks: {
              add?: {
                  preVisitor?: (orig: Algebra.Add) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Add>,
                      orig: Algebra.Add,
                  ) => unknown;
              };
              alt?: {
                  preVisitor?: (orig: Algebra.Alt) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Alt>,
                      orig: Algebra.Alt,
                  ) => unknown;
              };
              ask?: {
                  preVisitor?: (orig: Algebra.Ask) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Ask>,
                      orig: Algebra.Ask,
                  ) => unknown;
              };
              bgp?: {
                  preVisitor?: (orig: Algebra.Bgp) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Bgp>,
                      orig: Algebra.Bgp,
                  ) => unknown;
              };
              clear?: {
                  preVisitor?: (orig: Algebra.Clear) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Clear>,
                      orig: Algebra.Clear,
                  ) => unknown;
              };
              compositeupdate?: {
                  preVisitor?: (orig: Algebra.CompositeUpdate) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.CompositeUpdate>,
                      orig: Algebra.CompositeUpdate,
                  ) => unknown;
              };
              construct?: {
                  preVisitor?: (orig: Algebra.Construct) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Construct>,
                      orig: Algebra.Construct,
                  ) => unknown;
              };
              copy?: {
                  preVisitor?: (orig: Algebra.Copy) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Copy>,
                      orig: Algebra.Copy,
                  ) => unknown;
              };
              create?: {
                  preVisitor?: (orig: Algebra.Create) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Create>,
                      orig: Algebra.Create,
                  ) => unknown;
              };
              deleteinsert?: {
                  preVisitor?: (orig: Algebra.DeleteInsert) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.DeleteInsert>,
                      orig: Algebra.DeleteInsert,
                  ) => unknown;
              };
              describe?: {
                  preVisitor?: (orig: Algebra.Describe) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Describe>,
                      orig: Algebra.Describe,
                  ) => unknown;
              };
              distinct?: {
                  preVisitor?: (orig: Algebra.Distinct) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Distinct>,
                      orig: Algebra.Distinct,
                  ) => unknown;
              };
              drop?: {
                  preVisitor?: (orig: Algebra.Drop) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Drop>,
                      orig: Algebra.Drop,
                  ) => unknown;
              };
              expression?: {
                  preVisitor?: (orig: Algebra.Expression) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Expression>,
                      orig: Algebra.Expression,
                  ) => unknown;
              };
              extend?: {
                  preVisitor?: (orig: Algebra.Extend) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Extend>,
                      orig: Algebra.Extend,
                  ) => unknown;
              };
              filter?: {
                  preVisitor?: (orig: Algebra.Filter) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Filter>,
                      orig: Algebra.Filter,
                  ) => unknown;
              };
              from?: {
                  preVisitor?: (orig: Algebra.From) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.From>,
                      orig: Algebra.From,
                  ) => unknown;
              };
              graph?: {
                  preVisitor?: (orig: Algebra.Graph) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Graph>,
                      orig: Algebra.Graph,
                  ) => unknown;
              };
              group?: {
                  preVisitor?: (orig: Algebra.Group) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Group>,
                      orig: Algebra.Group,
                  ) => unknown;
              };
              inv?: {
                  preVisitor?: (orig: Algebra.Inv) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Inv>,
                      orig: Algebra.Inv,
                  ) => unknown;
              };
              join?: {
                  preVisitor?: (orig: Algebra.Join) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Join>,
                      orig: Algebra.Join,
                  ) => unknown;
              };
              leftjoin?: {
                  preVisitor?: (orig: Algebra.LeftJoin) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.LeftJoin>,
                      orig: Algebra.LeftJoin,
                  ) => unknown;
              };
              link?: {
                  preVisitor?: (orig: Algebra.Link) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Link>,
                      orig: Algebra.Link,
                  ) => unknown;
              };
              load?: {
                  preVisitor?: (orig: Algebra.Load) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Load>,
                      orig: Algebra.Load,
                  ) => unknown;
              };
              minus?: {
                  preVisitor?: (orig: Algebra.Minus) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Minus>,
                      orig: Algebra.Minus,
                  ) => unknown;
              };
              move?: {
                  preVisitor?: (orig: Algebra.Move) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Move>,
                      orig: Algebra.Move,
                  ) => unknown;
              };
              nop?: {
                  preVisitor?: (orig: Algebra.Nop) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Nop>,
                      orig: Algebra.Nop,
                  ) => unknown;
              };
              nps?: {
                  preVisitor?: (orig: Algebra.Nps) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Nps>,
                      orig: Algebra.Nps,
                  ) => unknown;
              };
              OneOrMorePath?: {
                  preVisitor?: (orig: Algebra.OneOrMorePath) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.OneOrMorePath>,
                      orig: Algebra.OneOrMorePath,
                  ) => unknown;
              };
              orderby?: {
                  preVisitor?: (orig: Algebra.OrderBy) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.OrderBy>,
                      orig: Algebra.OrderBy,
                  ) => unknown;
              };
              path?: {
                  preVisitor?: (orig: Algebra.Path) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Path>,
                      orig: Algebra.Path,
                  ) => unknown;
              };
              pattern?: {
                  preVisitor?: (orig: Algebra.Pattern) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Pattern>,
                      orig: Algebra.Pattern,
                  ) => unknown;
              };
              project?: {
                  preVisitor?: (orig: Algebra.Project) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Project>,
                      orig: Algebra.Project,
                  ) => unknown;
              };
              reduced?: {
                  preVisitor?: (orig: Algebra.Reduced) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Reduced>,
                      orig: Algebra.Reduced,
                  ) => unknown;
              };
              seq?: {
                  preVisitor?: (orig: Algebra.Seq) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Seq>,
                      orig: Algebra.Seq,
                  ) => unknown;
              };
              service?: {
                  preVisitor?: (orig: Algebra.Service) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Service>,
                      orig: Algebra.Service,
                  ) => unknown;
              };
              slice?: {
                  preVisitor?: (orig: Algebra.Slice) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Slice>,
                      orig: Algebra.Slice,
                  ) => unknown;
              };
              union?: {
                  preVisitor?: (orig: Algebra.Union) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Union>,
                      orig: Algebra.Union,
                  ) => unknown;
              };
              values?: {
                  preVisitor?: (orig: Algebra.Values) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.Values>,
                      orig: Algebra.Values,
                  ) => unknown;
              };
              ZeroOrMorePath?: {
                  preVisitor?: (orig: Algebra.ZeroOrMorePath) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.ZeroOrMorePath>,
                      orig: Algebra.ZeroOrMorePath,
                  ) => unknown;
              };
              ZeroOrOnePath?: {
                  preVisitor?: (orig: Algebra.ZeroOrOnePath) => TransformContext;
                  transform?: (
                      copy: SafeWrap<Safe, Algebra.ZeroOrOnePath>,
                      orig: Algebra.ZeroOrOnePath,
                  ) => unknown;
              };
          }
        • nodeSpecificCallBacks: {
              add?: {};
              alt?: {};
              ask?: {};
              bgp?: {};
              clear?: {};
              compositeupdate?: {};
              construct?: {};
              copy?: {};
              create?: {};
              deleteinsert?: {};
              describe?: {};
              distinct?: {};
              drop?: {};
              expression?: {
                  aggregate?: {
                      preVisitor?: (
                          op:
                              | Algebra.AggregateExpression
                              | Algebra.GroupConcatExpression
                              | Algebra.BoundAggregate,
                      ) => TransformContext;
                      transform?: (
                          op: SafeWrap<
                              Safe,
                              | Algebra.AggregateExpression
                              | Algebra.GroupConcatExpression
                              | Algebra.BoundAggregate,
                          >,
                      ) => unknown;
                  };
                  existence?: {
                      preVisitor?: (op: Algebra.ExistenceExpression) => TransformContext;
                      transform?: (op: SafeWrap<Safe, Algebra.ExistenceExpression>) => unknown;
                  };
                  named?: {
                      preVisitor?: (op: Algebra.NamedExpression) => TransformContext;
                      transform?: (op: SafeWrap<Safe, Algebra.NamedExpression>) => unknown;
                  };
                  operator?: {
                      preVisitor?: (op: Algebra.OperatorExpression) => TransformContext;
                      transform?: (op: SafeWrap<Safe, Algebra.OperatorExpression>) => unknown;
                  };
                  term?: {
                      preVisitor?: (op: Algebra.TermExpression) => TransformContext;
                      transform?: (op: SafeWrap<Safe, Algebra.TermExpression>) => unknown;
                  };
                  wildcard?: {
                      preVisitor?: (op: Algebra.WildcardExpression) => TransformContext;
                      transform?: (op: SafeWrap<Safe, Algebra.WildcardExpression>) => unknown;
                  };
              };
              extend?: {};
              filter?: {};
              from?: {};
              graph?: {};
              group?: {};
              inv?: {};
              join?: {};
              leftjoin?: {};
              link?: {};
              load?: {};
              minus?: {};
              move?: {};
              nop?: {};
              nps?: {};
              OneOrMorePath?: {};
              orderby?: {};
              path?: {};
              pattern?: {};
              project?: {};
              reduced?: {};
              seq?: {};
              service?: {};
              slice?: {};
              union?: {};
              values?: {};
              ZeroOrMorePath?: {};
              ZeroOrOnePath?: {};
          }

        Returns Safe extends "unsafe" ? OutType : unknown