brickcharts
Version:
A comprehensive library for managing Billboard and Last.FM charts with visualizations and data management
62 lines (61 loc) • 1.7 kB
TypeScript
import { ChartClient, ChartData, ChartEntry, ChartSource, FetchOptions, DateRange, HistoricalChartData } from '../types';
export interface LastFMAlbum {
name: string;
artist: {
name: string;
mbid?: string;
};
playcount: string;
rank: string;
'@attr'?: {
rank: string;
};
}
export interface LastFMArtist {
name: string;
playcount: string;
listeners: string;
rank: string;
'@attr'?: {
rank: string;
};
}
export interface LastFMResponse<T> {
[key: string]: {
track?: T[];
album?: T[];
artist?: T[];
'@attr': {
from?: string;
to?: string;
page: string;
perPage: string;
total: string;
totalPages: string;
};
};
}
export declare class LastFMClient implements ChartClient {
private readonly apiKey;
readonly name = "Last.FM";
readonly source = ChartSource.LASTFM;
private readonly baseUrl;
private readonly chartMap;
constructor(apiKey: string);
getAvailableCharts(): Promise<string[]>;
getChart(type: string, options?: FetchOptions): Promise<ChartData>;
getHistoricalData(type: string, dateRange: DateRange): Promise<HistoricalChartData>;
/**
* Search for tracks by artist or title
*/
searchTracks(query: string, limit?: number): Promise<ChartEntry[]>;
/**
* Get track info including play count and tags
*/
getTrackInfo(artist: string, track: string): Promise<any>;
private transformToChartData;
private transformTracks;
private transformAlbums;
private transformArtists;
}
//# sourceMappingURL=LastFMClient.d.ts.map