export interface BuildPluginParams {
    name: string;
    baseDir: string;
    methodName: string;
    firstTransformParams: FirstTransformParams;
}
export interface FirstTransformParams {
    packageRoot: string | undefined;
    appRoot: string;
    configs: {
        [packageRoot: string]: object;
    };
}
export declare function buildPlugin(params: BuildPluginParams): {
    name: string;
    plugin: (env: {
        syntax: {
            builders: any;
        };
        meta: {
            moduleName: string;
        };
        filename: string;
    }) => {
        name: string;
        visitor: {
            SubExpression(node: any, walker: {
                parent: {
                    node: any;
                };
            }): any;
            MustacheStatement(node: any): any;
            Template: {
                enter: (node: any) => void;
                exit: (node: any) => void;
            };
            Block: {
                enter: (node: any) => void;
                exit: (node: any) => void;
            };
            Program?: undefined;
        } | {
            SubExpression(node: any, walker: {
                parent: {
                    node: any;
                };
            }): any;
            MustacheStatement(node: any): any;
            Program: {
                enter: (node: any) => void;
                exit: (node: any) => void;
            };
            Template?: undefined;
            Block?: undefined;
        };
    };
    baseDir: () => string;
};
export declare function makeFirstTransform(opts: FirstTransformParams): (env: {
    syntax: {
        builders: any;
    };
    meta: {
        moduleName: string;
    };
    filename: string;
}) => {
    name: string;
    visitor: {
        SubExpression(node: any, walker: {
            parent: {
                node: any;
            };
        }): any;
        MustacheStatement(node: any): any;
        Template: {
            enter: (node: any) => void;
            exit: (node: any) => void;
        };
        Block: {
            enter: (node: any) => void;
            exit: (node: any) => void;
        };
        Program?: undefined;
    } | {
        SubExpression(node: any, walker: {
            parent: {
                node: any;
            };
        }): any;
        MustacheStatement(node: any): any;
        Program: {
            enter: (node: any) => void;
            exit: (node: any) => void;
        };
        Template?: undefined;
        Block?: undefined;
    };
};
export declare function makeSecondTransform(): (env: {
    syntax: {
        builders: any;
    };
}) => {
    name: string;
    visitor: {
        BlockStatement(node: any): any;
        SubExpression(node: any): any;
        ElementNode(node: any): void;
        MustacheStatement(node: any): any;
        Template: {
            enter: (node: any) => void;
            exit: (node: any) => void;
        };
        Block: {
            enter: (node: any) => void;
            exit: (node: any) => void;
        };
        Program?: undefined;
    } | {
        BlockStatement(node: any): any;
        SubExpression(node: any): any;
        ElementNode(node: any): void;
        MustacheStatement(node: any): any;
        Program: {
            enter: (node: any) => void;
            exit: (node: any) => void;
        };
        Template?: undefined;
        Block?: undefined;
    };
};
