@remcostoeten/fync
Version:
A unified TypeScript library for easy access to popular APIs (GitHub, Spotify, GitLab, etc.)
121 lines • 5.01 kB
TypeScript
export * from "./spotify-common";
export * from "./spotify-player";
export * from "./spotify-playlist";
export * from "./spotify-recent";
export * from "./spotify-search";
export * from "./spotify-track";
export * from "./spotify-user";
export type TSpotifyRequestOptions = {
params?: Record<string, string | number | boolean>;
headers?: Record<string, string>;
cache?: boolean;
cacheTTL?: number;
};
export type TSpotifyClient = {
auth: {
getAuthorizationUrl(scopes: string[], state?: string): string;
exchangeCodeForToken(code: string, state?: string): Promise<import("./spotify-common").TSpotifyTokenResponse>;
refreshAccessToken(refreshToken: string): Promise<import("./spotify-common").TSpotifyTokenResponse>;
};
me: {
get(): Promise<import("./spotify-user").TSpotifyUser>;
playlists: {
get(options?: TSpotifyRequestOptions): Promise<import("./spotify-common").TSpotifyPagingObject<import("./spotify-playlist").TSpotifyPlaylist>>;
};
tracks: {
get(options?: TSpotifyRequestOptions): Promise<import("./spotify-common").TSpotifyPagingObject<import("./spotify-track").TSpotifyTrack>>;
};
albums: {
get(options?: TSpotifyRequestOptions): Promise<import("./spotify-common").TSpotifyPagingObject<import("./spotify-track").TSpotifyAlbum>>;
};
artists: {
get(options?: TSpotifyRequestOptions): Promise<import("./spotify-common").TSpotifyPagingObject<import("./spotify-track").TSpotifyArtist>>;
};
player: {
get(): Promise<import("./spotify-player").TSpotifyPlaybackState>;
devices: {
get(): Promise<{
devices: import("./spotify-player").TSpotifyPlayerDevice[];
}>;
};
play(options?: {
device_id?: string;
uris?: string[];
}): Promise<void>;
pause(options?: {
device_id?: string;
}): Promise<void>;
next(options?: {
device_id?: string;
}): Promise<void>;
previous(options?: {
device_id?: string;
}): Promise<void>;
seek(position_ms: number, options?: {
device_id?: string;
}): Promise<void>;
volume(volume_percent: number, options?: {
device_id?: string;
}): Promise<void>;
repeat(state: "track" | "context" | "off", options?: {
device_id?: string;
}): Promise<void>;
shuffle(state: boolean, options?: {
device_id?: string;
}): Promise<void>;
};
};
search: {
get(query: string, types: readonly ("track" | "artist" | "album" | "playlist")[], options?: TSpotifyRequestOptions): Promise<import("./spotify-search").TSpotifySearchResult>;
};
playlist(playlistId: string): {
get(): Promise<import("./spotify-playlist").TSpotifyPlaylist>;
tracks: {
get(options?: TSpotifyRequestOptions): Promise<import("./spotify-common").TSpotifyPagingObject<import("./spotify-playlist").TSpotifyPlaylistTrack>>;
add(uris: string[], position?: number): Promise<{
snapshot_id: string;
}>;
remove(uris: string[]): Promise<{
snapshot_id: string;
}>;
};
};
user(userId: string): {
get(): Promise<import("./spotify-user").TSpotifyUser>;
playlists: {
get(options?: TSpotifyRequestOptions): Promise<import("./spotify-common").TSpotifyPagingObject<import("./spotify-playlist").TSpotifyPlaylist>>;
};
};
album(albumId: string): {
get(): Promise<import("./spotify-track").TSpotifyAlbum>;
tracks: {
get(options?: TSpotifyRequestOptions): Promise<import("./spotify-common").TSpotifyPagingObject<import("./spotify-track").TSpotifyTrack>>;
};
};
artist(artistId: string): {
get(): Promise<import("./spotify-track").TSpotifyArtist>;
albums: {
get(options?: TSpotifyRequestOptions): Promise<import("./spotify-common").TSpotifyPagingObject<import("./spotify-track").TSpotifyAlbum>>;
};
tracks: {
top(options?: TSpotifyRequestOptions): Promise<{
tracks: import("./spotify-track").TSpotifyTrack[];
}>;
};
related: {
get(): Promise<{
artists: import("./spotify-track").TSpotifyArtist[];
}>;
};
};
track(trackId: string): {
get(): Promise<import("./spotify-track").TSpotifyTrack>;
features: {
get(): Promise<import("./spotify-track").TSpotifyAudioFeatures>;
};
analysis: {
get(): Promise<import("./spotify-track").TSpotifyAudioAnalysis>;
};
};
};
//# sourceMappingURL=index.d.ts.map