import { RegistryType } from "./RegistryType";
import { Ping, Release, View, WhoAmI } from "trm-registry-types";
import { TrmArtifact } from "../trmPackage/TrmArtifact";
export declare const PUBLIC_RESERVED_KEYWORD = "public";
export declare class Registry {
    endpoint: string;
    name: string;
    private _registryType;
    private _axiosInstance;
    private _authData;
    private _ping;
    private _whoami;
    constructor(endpoint: string, name?: string);
    getRegistryType(): RegistryType;
    authenticate(defaultData?: any): Promise<Registry>;
    private _basicAuth;
    private _tokenAuth;
    private _oauth2;
    getAuthData(): any;
    ping(): Promise<Ping>;
    whoAmI(): Promise<WhoAmI>;
    packageExists(name: string, version?: string): Promise<boolean>;
    view(name: string, version?: string): Promise<View>;
    getArtifact(name: string, version?: string): Promise<TrmArtifact>;
    publishArtifact(packageName: string, version: string, artifact: TrmArtifact, readme?: string): Promise<void>;
    unpublish(packageName: string, version: string): Promise<void>;
    getReleases(packageName: string, versionRange: string): Promise<Release[]>;
    static compare(o1: Registry, o2: Registry): boolean;
}
