import { UrlExtractorInterface, TrackId, TrackUrl, DownloadInfo, ApiInitConfig, InitResponse, DownloadTrackQuality, DownloadTrackCodec, PlaylistId, PlaylistUrl, UserId, UserName, Playlist, Track, AlbumUrl, AlbumId, Album, AlbumWithTracks, ArtistId, ArtistUrl, FilledArtist, getYMInfo } from "./types";
import YMApi from "./YMApi";
export default class WrappedYMApi {
    private api;
    private urlExtractor;
    constructor(api?: YMApi, urlExtractor?: UrlExtractorInterface);
    init(config: ApiInitConfig): Promise<InitResponse>;
    getApi(): YMApi;
    private getTrackId;
    private getAlbumId;
    private getArtistId;
    private getPlaylistId;
    private getType
    private getUrl
    getConcreteDownloadInfo(track: TrackId | TrackUrl, codec: DownloadTrackCodec, quality: DownloadTrackQuality): Promise<DownloadInfo>;
    getMp3DownloadInfo(track: TrackId | TrackUrl, quality?: DownloadTrackQuality): Promise<DownloadInfo>;
    getMp3DownloadUrl(track: TrackId | TrackUrl, quality?: DownloadTrackQuality): Promise<string>;
    getPlaylist(playlist: PlaylistId | PlaylistUrl, user?: UserId | UserName): Promise<Playlist>;
    getTrack(track: TrackId | TrackUrl): Promise<Track>;
    getAlbum(album: AlbumId | AlbumUrl, withTracks?: boolean): Promise<Album>;
    getAlbumWithTracks(album: AlbumId | AlbumUrl): Promise<AlbumWithTracks>;
    getArtist(artist: ArtistId | ArtistUrl): Promise<FilledArtist>;
    getYMInfo(url: String, type: String)
}
