import { Defined, DryOption, NormalizedDryOption } from '@alexaegis/common';
import { LoggerOption, NormalizedLoggerOption } from '@alexaegis/logging';
import { CollectWorkspacePackagesOptions, NormalizedCollectWorkspacePackagesOptions } from '@alexaegis/workspace-tools';
export declare const DEFAULT_NUKE_LIST: string[];
export declare const DEFAULT_NUKE_GLOBS: string[];
export interface NukeOptionsOnly {
    /**
     * Don't remove `node_modules` directories but try to clean them up
     *
     * @defaultValue false
     */
    skipNodeModules?: boolean;
    /**
     * A list of relative paths this script will remove in every package
     * in the workspace. If you define this, the default are not applied.
     *
     * If you only wish to extend or remove parts of it use the `nukeMore`
     * and `dontNuke` fields and leave this one alone.
     *
     * @defaultValue DEFAULT_NUKE_LIST
     */
    nukeList?: string[] | undefined;
    /**
     * Globs to also remove.
     *
     * If you only wish to extend or remove parts of it use the `nukeMoreGlobs`
     * and `dontNuke` fields and leave this one alone.
     *
     * @defaultValue DEFAULT_NUKE_GLOBS
     */
    nukeGlobs?: string[] | undefined;
    /**
     * Additional globs to nuke if you don't want to overwrite the default ones
     *
     * @defaultValue undefined
     */
    nukeMoreGlobs?: string[] | undefined;
    /**
     * These will be nuked too. Same role as `nukeList` but defining this
     * won't get rid of the built in nukelist
     *
     * @defaultValue []
     */
    nukeMore?: string[] | undefined;
    /**
     * If it shouldn't nuke a specific package, add them here.
     *
     * @defaultValue []
     */
    dontNukeIn?: (string | RegExp)[] | undefined;
}
export type NukeOptions = NukeOptionsOnly & DryOption & CollectWorkspacePackagesOptions & LoggerOption;
export type NormalizedNukeOptions = Defined<NukeOptionsOnly> & NormalizedDryOption & NormalizedCollectWorkspacePackagesOptions & NormalizedLoggerOption;
export declare const normalizeNukeOptions: (options?: NukeOptions) => NormalizedNukeOptions;
//# sourceMappingURL=nuke.function.options.d.ts.map