import { LogLevels, PiralBuildType } from '../types';
export interface BuildPiralOptions {
    /**
     * The location of the piral
     */
    entry?: string;
    /**
     * Sets the target directory where the output of the bundling should be placed.
     */
    target?: string;
    /**
     * Sets the public URL (path) of the bundle. Only for release output.
     */
    publicUrl?: string;
    /**
     * Performs minification or other post-bundle transformations.
     */
    minify?: boolean;
    /**
     * Sets the log level to use.
     */
    logLevel?: LogLevels;
    /**
     * Places the build's output in an appropriate subdirectory (e.g., "emulator").
     */
    subdir?: boolean;
    /**
     * Performs a fresh build by removing the target directory first.
     */
    fresh?: boolean;
    /**
     * Selects the target type of the build (e.g. 'release'). "all" builds all target types.
     */
    type?: PiralBuildType;
    /**
     * Create associated source maps for the bundles.
     */
    sourceMaps?: boolean;
    /**
     * States if the build should run continuously and re-build when files change.
     */
    watch?: boolean;
    /**
     * Sets the bundler to use for building, if any specific.
     */
    bundlerName?: string;
    /**
     * Appends a hash to the side-bundle files.
     */
    contentHash?: boolean;
    /**
     * States if the node modules should be included for target transpilation
     */
    optimizeModules?: boolean;
    /**
     * Additional arguments for a specific bundler.
     */
    _?: Record<string, any>;
    /**
     * Hooks to be triggered at various stages.
     */
    hooks?: {
        onBegin?(e: any): Promise<void>;
        beforeBuild?(e: any): Promise<void>;
        afterBuild?(e: any): Promise<void>;
        beforeEmulator?(e: any): Promise<void>;
        afterEmulator?(e: any): Promise<void>;
        beforePackage?(e: any): Promise<void>;
        afterPackage?(e: any): Promise<void>;
        onEnd?(e: any): Promise<void>;
    };
}
export declare const buildPiralDefaults: BuildPiralOptions;
export declare function buildPiral(baseDir?: string, options?: BuildPiralOptions): Promise<void>;
