/// <reference types="webpack" />
import * as webpack from "webpack";
import { CleanOptions } from "./options/clean";
import { CopyOptions } from "./options/copy";
import { PugOptions } from "./options/pug";
import { SassOptions } from "./options/sass";
import { TypescriptOptions } from "./options/typescript";
/**
 * A target represents a group of tasks to produce a specific build.
 */
export interface Target {
    /**
     * Name of the target, used to prefix related tasks
     */
    name: string;
    /**
     * Name of the target directory, relative to `project.buildDir`.
     * Default: `target.name`.
     */
    targetDir?: string;
    /**
     * Source directory for this target, relative to `project.srcDir`.
     */
    srcDir?: string;
    /**
     * List of minimatch glob patterns matching the Typescript scripts, relative
     * to `target.srcDir`.
     */
    scripts: string[];
    /**
     * List of directories where Typescript should search for declarations,
     * relative to `target.srcDir`.
     */
    typeRoots: string[];
    /**
     * Advanced typescript configuration
     */
    typescript?: TypescriptOptions;
    /**
     * A list of copy operations to perform during the build process.
     */
    copy?: CopyOptions[];
    pug?: PugOptions[];
    sass?: SassOptions[];
    /**
     * Description of the files to clean, **relative to `project.root`**.
     *
     * Default:
     * {
     *   dirs: [
     *     path.join(project.buildDir, target.targetDir),
     *     path.join(project.distDir, target.targetDir)
     *   ]
     * }
     */
    clean?: CleanOptions;
}
export interface WebpackTarget extends Target {
    /**
     * Directory to store webpack files during the build, relative to
     * `project.buildDir`.
     */
    webpackDir: string;
    /**
     * The name of tha main module (name of the file without the extension),
     * relative to `project.srcDir`. It is the entry point of the application.
     */
    mainModule: string;
    webpackOptions?: {
        webpack?: typeof webpack;
        configuration?: webpack.Configuration;
    };
}
/**
 * Preconfigured "webpack" configuration for an Angular Universal client.
 */
export declare const ANGULAR_CLIENT_TARGET: WebpackTarget;
