import { CodyResponse } from "./models";
export declare const SPOTIFY_ROOT_API = "https://api.spotify.com";
/**
 * Spotify Error Cases
 * When performing an action that is restricted,
 * 404 NOT FOUND or 403 FORBIDDEN will be returned together with a player error message.
 * For example, if there are no active devices found, the request will
 * return 404 NOT FOUND response code and the reason NO_ACTIVE_DEVICE, or,
 * if the user making the request is non-premium, a 403 FORBIDDEN response
 * code will be returned together with the PREMIUM_REQUIRED reason.
 */
export declare class MusicClient {
    private static instance;
    private constructor();
    static getInstance(): MusicClient;
    getHighestFrequencySpotifyGenre(genreList: any[]): string;
    getGenreFromItems(items: []): string;
    getGenreFromSpotify(artist: string, artistId?: string): Promise<any>;
    getGenreFromItunes(artist: string, song?: string): Promise<string>;
    fetchItunesGenre(artist: string, song: string): Promise<any>;
    findNameFromItunesResponse(resp: any): any;
    /**
     * Refresh the spotify access token
     */
    refreshSpotifyToken(optionalRefreshToken?: string): Promise<any>;
    spotifyApiGet(api: string, qsOptions?: any, optionalAccessToken?: string): Promise<CodyResponse>;
    spotifyApiPut(api: string, qsOptions?: any, payload?: any): Promise<CodyResponse>;
    spotifyApiPost(api: string, qsOptions?: any, payload?: any): Promise<CodyResponse>;
    spotifyApiDelete(api: string, qsOptions?: any, payload?: any): Promise<CodyResponse>;
    addQueryStringToApi(api: string, qsOptions?: any): string;
    buildSuccessResponse(resp: any): CodyResponse;
    buildErrorResponse(err: any): CodyResponse;
    throwNoSpotifyTokenInfoError(): CodyResponse;
}
