/// <reference types="webpack" />
/// <reference types="gulp" />
/// <reference types="node" />
import { FSWatcher } from "fs";
import { Gulp } from "gulp";
import webpack from "webpack";
import { TaskFunction } from "../utils/gulp-task-function";
export interface Options {
    /**
     * Root of the main project (with package.json)
     */
    projectRoot: string;
    /**
     * Directory containing the JS sources.
     */
    srcDir: string;
    /**
     * Directory were the result will be piped
     */
    buildDir: string;
    /**
     * Entry module, relative to `jsSrcDir`
     */
    entry: string;
    webpackOptions?: {
        /**
         * Webpack object to use
         */
        webpack?: typeof webpack;
        /**
         * Customize the default webpack configuration
         */
        configuration?: webpack.Configuration;
    };
}
/**
 * Return the canonical name of the build-webpack task according to the target name.
 *
 * @param targetName Current target name
 * @returns {string} The canonical of the build-webpack task for the provided target
 */
export declare function getTaskName(targetName: string): string;
export declare function generateTask(gulp: Gulp, options: Options): TaskFunction;
export declare function watch(gulp: Gulp, options: Options): FSWatcher;
