import { RegistryType } from "./RegistryType";
import { Deprecate, DistTagAdd, DistTagRm, Package, Ping, WhoAmI } from "trm-registry-types";
import { TrmArtifact } from "../trmPackage/TrmArtifact";
import { AbstractRegistry } from "./AbstractRegistry";
export declare const PUBLIC_RESERVED_KEYWORD = "public";
export declare class RegistryV2 implements AbstractRegistry {
    endpoint: string;
    name: string;
    private _coreVersion?;
    private _cache;
    private _registryType;
    private _axiosInstance;
    private _authData;
    private _userAgent;
    constructor(endpoint: string, name?: string, _coreVersion?: string);
    private getDefaultAxiosHeaders;
    compare(registry: AbstractRegistry): boolean;
    getRegistryType(): RegistryType;
    authenticate(defaultData?: any): Promise<AbstractRegistry>;
    private _basicAuth;
    private _tokenAuth;
    private _oauth2;
    getAuthData(): any;
    ping(): Promise<Ping>;
    whoAmI(): Promise<WhoAmI>;
    getPackage(fullName: string, version?: string): Promise<Package>;
    downloadArtifact(fullName: string, version?: string): Promise<TrmArtifact>;
    validatePublish(fullName: string, version: string, isPrivate: boolean): Promise<void>;
    publish(fullName: string, version: string, artifact: TrmArtifact, readme?: string, tags?: string): Promise<void>;
    unpublish(fullName: string, version: string): Promise<void>;
    deprecate(fullName: string, version: string, deprecate: Deprecate): Promise<void>;
    addDistTag(fullName: string, distTag: DistTagAdd): Promise<void>;
    rmDistTag(fullName: string, distTag: DistTagRm): Promise<void>;
    contents(fullName: string, version?: string): Promise<any>;
}
