import { Result, ParentInfo } from "./visitor";
import { SuperNode } from './transformer';
import { Class } from './types';
declare type VisitorExtension = (next: VisitorInvocation) => Result;
interface VisitorInvocation {
    value: {};
    type: Class;
    path: string;
    decorators: any[];
    parent?: ParentInfo;
    proceed(): Result;
}
declare function pipe(value: {}, strPath: string, ast: SuperNode, decorators: any[], extensions: VisitorExtension[], visitor: () => Result, parent?: ParentInfo): VisitorInvocation;
export { pipe, VisitorExtension, VisitorInvocation };
