UNPKG

tauri-plugin-apple-music-kit-api

Version:

Tauri plugin for Apple MusicKit integration - TypeScript API bindings

153 lines (152 loc) 4.09 kB
import type { PluginListener } from '@tauri-apps/api/core'; import type { MusicKitTrack, AuthorizationResponse, UnauthorizeResponse, AuthorizationStatusResponse, QueueResponse, QueueOperationResponse, MusicKitEventMap } from './types'; export * from './types'; export declare class MusicKit { private eventListeners; /** * Initialize MusicKit */ initialize(): Promise<void>; /** * Request authorization to access Apple Music */ authorize(): Promise<AuthorizationResponse>; /** * Unauthorize access to Apple Music */ unauthorize(): Promise<UnauthorizeResponse>; /** * Get current authorization status */ getAuthorizationStatus(): Promise<AuthorizationStatusResponse>; /** * Get user token */ getUserToken(): Promise<string | null>; /** * Get developer token */ getDeveloperToken(): Promise<string | null>; /** * Set developer token */ setDeveloperToken(token: string): Promise<void>; /** * Set user token */ setUserToken(token: string): Promise<void>; /** * Get storefront information */ getStorefrontId(): Promise<string | null>; /** * Get current queue */ getQueue(): Promise<QueueResponse>; /** * Start playback */ play(): Promise<void>; /** * Pause playback */ pause(): Promise<void>; /** * Stop playback */ stop(): Promise<void>; /** * Seek to specific time */ seek(timeInSeconds: number): Promise<void>; /** * Skip to next track */ next(): Promise<void>; /** * Skip to previous track */ previous(): Promise<void>; /** * Skip to specific track */ skipToItem(trackId: string, startPlaying: boolean): Promise<void>; /** * Set volume */ setVolume(volume: number): Promise<void>; /** * Set the playback queue */ setQueue(tracks: MusicKitTrack[], startPlaying?: boolean, startPosition?: number): Promise<QueueOperationResponse>; /** * Update queue */ updateQueue(tracks: MusicKitTrack[]): Promise<QueueOperationResponse>; /** * Insert track at position */ insertTrackAtPosition(track: MusicKitTrack, position: number): Promise<QueueOperationResponse>; /** * Insert tracks at position */ insertTracksAtPosition(tracks: MusicKitTrack[], position: number): Promise<QueueOperationResponse>; /** * Remove track from queue */ removeTrackFromQueue(trackId: string): Promise<QueueOperationResponse>; /** * Insert track next */ insertTrackNext(track: MusicKitTrack): Promise<QueueOperationResponse>; /** * Insert track last */ insertTrackLast(track: MusicKitTrack): Promise<QueueOperationResponse>; /** * Append tracks to queue */ appendTracksToQueue(tracks: MusicKitTrack[]): Promise<QueueOperationResponse>; /** * Listen to MusicKit events */ addEventListener<K extends keyof MusicKitEventMap>(event: K, callback: (payload: MusicKitEventMap[K]) => void): Promise<PluginListener>; /** * Remove all event listeners */ removeAllEventListeners(): void; /** * Check if user has Apple Music subscription */ hasSubscription(): Promise<boolean>; /** * Get current playback state */ getPlaybackState(): Promise<import('./types').PlaybackState>; /** * Get current track */ getCurrentTrack(): Promise<MusicKitTrack | null>; /** * Check if currently playing */ isPlaying(): Promise<boolean>; /** * Check if currently paused */ isPaused(): Promise<boolean>; /** * Get current playback time in seconds */ getCurrentTime(): Promise<number>; /** * Get track duration in seconds */ getDuration(): Promise<number>; /** * Get playback progress as percentage (0-1) */ getProgress(): Promise<number>; } export declare const musicKit: MusicKit; export default musicKit;