import { BumpManifestGitStatus } from './bump-manifest';
import { ChangelogEntry } from './changelog';
import { IConfiguration } from './configuration';
import { ConventionalCommit } from './conventional-commmit-utils';
import { Git } from './git';
export interface PackedPackage {
    packFiles?: Record<string, string | string[] | Record<string, string>>;
    packageRelativeCwd: string;
    tag: string;
    packageName: string;
    version: string;
    previousVersion: string;
    changeLog: ChangelogEntry;
    commits: ConventionalCommit[];
    republish?: boolean;
}
export interface PackManifestGitStatus extends BumpManifestGitStatus {
    prePack: string;
    postPack: string;
}
export interface PackManifestContent {
    gitStatus: PackManifestGitStatus;
    packages: PackedPackage[];
    republish?: boolean;
}
export declare class PackArtifact {
    private configuration;
    private git;
    gitStatus: PackManifestGitStatus;
    packages: PackedPackage[];
    republish: boolean;
    get packFolder(): string;
    get packManifestFile(): string;
    private constructor();
    validateGitStatusWithBump(): boolean;
    validateGitStatusDuringPack(): boolean;
    validateGitStatusForPublish(): Promise<boolean>;
    static load(configuration: IConfiguration, git: Git): Promise<PackArtifact | null>;
    static new(configuration: IConfiguration, git: Git, bumpGitStatus: BumpManifestGitStatus, republish?: boolean): Promise<PackArtifact>;
    static clear(configuration: IConfiguration): Promise<void>;
    add(packedPackage: PackedPackage): void;
    persist(): Promise<void>;
}
