interface Ratelimit {
    ratelimit: number;
    remaining: number;
    used: number;
}
export default class Client {
    private protocol;
    private host;
    private port;
    private userAgent;
    private auth;
    private ratelimit;
    private discogsUserName;
    private perPage;
    private defaults;
    constructor({ host, port, userAgent, token, key, secret, discogsUserName, }: {
        host?: string;
        port?: number;
        userAgent?: string;
        token?: string;
        key?: string;
        secret?: string;
        discogsUserName?: string;
    });
    private createAuthString;
    private request;
    getRatelimit(): Ratelimit;
    getRequest(path: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    deleteRequest(path: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    postRequest(path: string, body: any): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    putRequest(path: string, body: any): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    private delay;
    calculateRateLimitRemaining(): Promise<void>;
    getUser(): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    deleteUser(): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getUserCollection(pageNumber: string, sort: string, sortOrder: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getUserWantlist(pageNumber: string, sort: string, sortOrder: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getUserFolders(): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getUserFolderContents(folder: string, pageNumber: string, sort: string, sortOrder: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getUserCollectionValue(): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getRelease(releaseId: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getReleaseUserRating(releaseId: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getReleaseCommunityRating(releaseId: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getReleaseStats(releaseId: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getMasterRelease(masterId: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getMasterReleaseVersions(masterId: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getArtistDetails(ArtistId: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getArtistReleases(ArtistId: string, pageNumber: string, sort: string, sortOrder: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getLabelDetails(LabelId: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getLabelReleases(LabelId: string, pageNumber: string, sort: string, sortOrder: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getSearch(query: string, pageNumber: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getSearchArtist(query: string, pageNumber: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getSearchReleaseId(query: string, pageNumber: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getSearchCatalogueNumber(query: string, pageNumber: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getSearchReleaseTitle(query: string, pageNumber: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getSearchTrackTitle(query: string, pageNumber: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getSearchLabelReleases(query: string, pageNumber: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
    getSearchLabel(query: string, pageNumber: string): Promise<{
        data: any;
        headers: import("node-fetch").Headers;
    }>;
}
export {};
//# sourceMappingURL=index.d.ts.map