import { Manifest } from "../manifest";
import { AbstractRegistry } from "../registry";
import { TrmArtifact } from "./TrmArtifact";
import { DEVCLASS, ZTRM_DIRTY } from "../client";
import { Transport, TrmTransportIdentifier } from "../transport";
import { Lockfile } from "../lockfile";
export type TrmPackageInstallTransport = {
    type: TrmTransportIdentifier;
    transport: Transport;
};
export declare class TrmPackage {
    packageName: string;
    registry: AbstractRegistry;
    manifest?: Manifest;
    private _devclass;
    private _dirtyEntries;
    private _installTransports;
    constructor(packageName: string, registry: AbstractRegistry, manifest?: Manifest);
    setDirtyEntries(entries: ZTRM_DIRTY[]): TrmPackage;
    isDirty(): boolean;
    getDirtyEntries(): ZTRM_DIRTY[];
    setDevclass(devclass: DEVCLASS): TrmPackage;
    getDevclass(): DEVCLASS;
    publish(data: {
        artifact: TrmArtifact;
        readme?: string;
        tags?: string[];
    }): Promise<TrmPackage>;
    compareRegistry(registry: AbstractRegistry): boolean;
    compareName(name: string): boolean;
    getLockfile(systemPackages?: TrmPackage[]): Promise<Lockfile>;
    static create(manifest: Manifest, registry: AbstractRegistry): Promise<TrmPackage>;
    static compare(o1: TrmPackage, o2: TrmPackage): boolean;
}
