import { IPackageJsonGenerator } from "./i-package-json-generator";
import { IPackageJson } from "../../../package-json/i-package-json";
import { TemplateFile } from "../template-generator/template-file";
import { Generator } from "../generator";
import { NormalizeFunction } from "../../../normalize/normalize-function";
import { IFormatter } from "../../../formatter/i-formatter";
import { IBuildConfig } from "../../../build-config/i-build-config";
import { IPackageJsonGeneratorOptions } from "./i-package-json-generator-options";
import { PackageJsonUserOptions } from "../../../package-json/package-json-user-options";
import { IPackageJsonNormalizeFunctionConfig } from "../../../package-json/i-package-json-normalize-function-config";
/**
 * A class that helps with generating a package.json file
 */
export declare class PackageJsonGenerator extends Generator implements IPackageJsonGenerator {
    private readonly config;
    private readonly formatter;
    private readonly normalizeFunction;
    constructor(config: IBuildConfig, formatter: IFormatter, normalizeFunction: NormalizeFunction<IPackageJson, PackageJsonUserOptions, IPackageJsonNormalizeFunctionConfig>);
    /**
     * Generates package.json data based on the given options
     * @param {PackageJsonUserOptions} options
     * @returns {Promise<TemplateFile[]>}
     */
    onGenerate({options}: IPackageJsonGeneratorOptions): Promise<TemplateFile[]>;
}
