/**
 * @typedef {import('../publish.mjs').PublishingDetail} PublishingDetail
 */
/**
 * @typedef {Object} Field
 * @property {string} alias interchangeable field name
 * @property {string} type
 * @property {any} default
 * @property {boolean} mandatory
 */
/**
 * Base Packager
 * @param {Object} properties
 */
export class Packager {
    static get fields(): {};
    /**
     * @return {{named:object,others:string[]}}
     */
    static get workspaceLayout(): {
        named: object;
        others: string[];
    };
    /**
     * @param {Object} options
     * @param {Object} variant
     * @return {Promise<boolean>}
     */
    static prepare(options: any, variant: any): Promise<boolean>;
    /**
     * Base Packager
     * @param {Object} properties
     */
    constructor(properties: any);
    /**
     * What is the package name in the package eco-system.
     * @param {string} name
     * @return {string} package name in the target eco-system
     */
    packageName(name: string): string;
    get hookMapping(): {};
    hookContent(): AsyncGenerator<StringContentEntry, void, unknown>;
    dependencyExpression(name: any, expression: any): any;
    makeDepends(dependencies: any): any[];
    get fileNameExtension(): any;
    get fields(): any;
    get properties(): any;
    /**
     * Create tmp directory.
     * @return {Promise<string>} directory path
     */
    get tmpdir(): Promise<string>;
    /**
     * Prepares artifact generation.
     * @param {Object} options
     * @param {Object} [publishingDetail]
     * @returns {Promise<{properties:Object, destination:string, tmpdir:string, staging:string}>}
     */
    prepare(options: any, publishingDetail?: any): Promise<{
        properties: any;
        destination: string;
        tmpdir: string;
        staging: string;
    }>;
    /**
     * Execute package generation.
     * @param {Object} sources
     * @param {Object[]} transformer
     * @param {PublishingDetail[]} publishingDetails
     * @param {Object} options
     * @param {function(string):string?} expander
     * @return {Promise<string>} identifier of the resulting package
     */
    create(sources: any, transformer: any[], publishingDetails: PublishingDetail[], options: any, expander: (arg0: string) => string | null): Promise<string>;
    publish(artifact: any, publishingDetails: any, logger: any): Promise<void>;
    #private;
}
export namespace NAME_FIELD {
    let alias: string;
    let type: string;
    let mandatory: boolean;
}
export namespace VERSION_FIELD {
    let alias_1: string;
    export { alias_1 as alias };
    let type_1: string;
    export { type_1 as type };
    let mandatory_1: boolean;
    export { mandatory_1 as mandatory };
    export function set(v: any): any;
}
export namespace DESCRIPTION_FIELD {
    let alias_2: string;
    export { alias_2 as alias };
    let type_2: string;
    export { type_2 as type };
    let mandatory_2: boolean;
    export { mandatory_2 as mandatory };
}
export type PublishingDetail = import("../publish.mjs").PublishingDetail;
export type Field = {
    /**
     * interchangeable field name
     */
    alias: string;
    type: string;
    default: any;
    mandatory: boolean;
};
import { StringContentEntry } from "content-entry";
