import { TrackArtist, Track } from './TrackTypes.js'; import '../TidalTypes.js'; interface Playlist { uuid: string; title: string; numberOfTracks: number; numberOfVideos: number; creator: TrackArtist; description: string; duration: number; lastUpdated: number | Date; created: string; type: string; publicPlaylist: boolean; url: string; image: string; popularity: number; squareImage: string; promotedArtists: TrackArtist[]; lastItemAddedAt: string; } interface PlaylistTracks { item: Track; type: string; cut: string | number | null; } interface PlaylistFolders { addedAt: string; data: Data; itemType: ItemType; lastModifiedAt: string; name: string; parent: string | null; trn: string; } interface Data { contentBehavior?: ContentBehavior; created?: string; createdAt?: string; creator?: Creator; description?: string; duration?: number; id?: string; image?: string; itemType: ItemType; lastItemAddedAt?: string; lastModifiedAt?: string; lastUpdated?: number | Date; name?: string; numberOfTracks?: number; numberOfVideos?: number; promotedArtists?: any[]; sharingLevel?: SharingLevel; squareImage?: string; title?: string; totalNumberOfItems?: number; trn: string; type?: Type; url?: string; uuid?: string; } declare enum ContentBehavior { Unrestricted = "UNRESTRICTED" } interface Creator { id: number; name: string; picture: null; type: Type; } declare enum Type { User = "USER" } declare enum ItemType { Folder = "FOLDER", Playlist = "PLAYLIST" } declare enum SharingLevel { Private = "PRIVATE" } export { ContentBehavior, Creator, Data, ItemType, Playlist, PlaylistFolders, PlaylistTracks, SharingLevel, Type };