interface MusixmatchLyricResponse { message: { header: { status_code: number; execute_time: number; available: number; }; body: any; }; } interface MusixmatchLyrics { action_requested: string; backlink_url: string; can_edit: number; explicit: number; html_tracking_url: string; instrumental: number; locked: number; lyrics_body: MusixmatchLyric[]; subtitle_body: MusixmatchSubtitle[]; richsync_body: MusixmatchRichsync[]; lyrics_copyright: string; lyrics_id: number; lyrics_language: string; lyrics_language_description: string; pixel_tracking_url: string; published_status: number; publisher_list: any[]; restricted: number; script_tracking_url: string; updated_time: string; verified: number; } interface MusixmatchLyric { text: string; } interface MusixmatchSubtitle { text: string; time: { total: number; minutes: number; seconds: number; hundredths: number; }; } interface MusixmatchRichsync { start: number; end: number; body: MusixmatchRichsyncBody[]; text: string; } interface MusixmatchRichsyncBody { text: string; offset: number; } interface MusixmatchLyricTypes { LYRICS: 'track.lyrics.get'; SUBTITLES: 'track.subtitles.get'; RICHSYNC: 'track.richsync.get'; } type MusixmatchLyricType = MusixmatchLyricTypes[keyof MusixmatchLyricTypes]; declare class MusixMatch { LYRIC_TYPES: MusixmatchLyricTypes; protected tokens: string[]; private get api_base(); private get token(); addToken(token: string): void; constructor(tokens?: string[]); getLyrics(isrc: string): Promise; getSubtitleLyrics(isrc: string): Promise; getRichsyncLyrics(isrc: string): Promise; protected buildSearchParams(isrc: string): URLSearchParams; protected requestLyrics(isrc: string, type: MusixmatchLyricType): Promise; protected processLyrics(lyrics_body: string): MusixmatchLyric[]; protected processSubtitles(subtitle_body: string): MusixmatchSubtitle[]; protected processRichsync(richsync_body: string): MusixmatchRichsync[]; } export { MusixMatch as default };