export type CovertType = 'Front' | 'Back' | 'Booklet' | 'Medium' | 'Obi' | 'Spine' | 'Track' | 'Tray' | 'Sticker' | 'Poster' | 'Liner' | 'Watermark' | 'Raw/Unedited' | 'Matrix/Runout' | 'Top' | 'Bottom' | 'Other';
export interface IImage {
    types: CovertType[];
    front: boolean;
    back: boolean;
    edit: number;
    image: string;
    comment: string;
    approved: boolean;
    id: string;
    thumbnails: {
        large: string;
        small: string;
        '250': string;
        '500'?: string;
        '1200'?: string;
    };
}
export type CoverType = 'front' | 'back';
export interface ICoversInfo {
    images: IImage[];
    release: string;
}
export interface ICoverInfo {
    url: string | null;
}
export declare class CoverArtArchiveApi {
    private httpClient;
    private getJson;
    private getCoverRedirect;
    /**
     * Fetch release
     * @releaseId Release MBID
     * @param releaseId MusicBrainz Release MBID
     */
    getReleaseCovers(releaseId: string): Promise<ICoversInfo>;
    /**
     * Fetch release-group
     * @releaseGroupId Release-group MBID
     * @param releaseGroupId MusicBrainz Release Group MBID
     */
    getReleaseGroupCovers(releaseGroupId: string): Promise<ICoversInfo>;
    /**
     * Fetch release cover
     * @releaseId Release MBID
     * @param releaseId MusicBrainz Release MBID
     * @param coverType Front or back cover
     */
    getReleaseCover(releaseId: string, coverType: CoverType): Promise<ICoverInfo>;
    /**
     * Fetch release-group cover
     * @releaseId Release-group MBID
     * @param releaseGroupId MusicBrainz Release-group MBID
     * @param coverType Front or back cover
     */
    getReleaseGroupCover(releaseGroupId: string, coverType: CoverType): Promise<ICoverInfo>;
    private static makePath;
    /**
     * Fetch covers
     * @releaseId MBID
     * @param releaseId MusicBrainz Release Group MBID
     * @param releaseType Fetch covers for specific release or release-group
     * @param coverType Cover type
     */
    private getCovers;
    /**
     * Fetch covers
     * @releaseId MBID
     * @param releaseId MusicBrainz Release Group MBID
     * @param releaseType Fetch covers for specific release or release-group
     * @param coverType Cover type
     */
    private getCover;
}
