tauri-plugin-apple-music-kit-api
Version:
Tauri plugin for Apple MusicKit integration - TypeScript API bindings
153 lines (152 loc) • 4.09 kB
TypeScript
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;