import type { z } from 'zod'; import { AdvancedOptions } from '../../services/EntityManager/types'; import { Configuration, PlaylistsApi as GeneratedPlaylistsApi, type DeletePlaylistRequest, type RepostPlaylistRequest, type UnrepostPlaylistRequest, type FavoritePlaylistRequest, type UnfavoritePlaylistRequest, type SharePlaylistRequest } from '../generated/default'; import { AddTrackToPlaylistRequest, CreatePlaylistSchema, EntityManagerDeletePlaylistRequest, PublishPlaylistRequest, RemoveTrackFromPlaylistRequest, EntityManagerRepostPlaylistRequest, EntityManagerUnrepostPlaylistRequest, EntityManagerFavoritePlaylistRequest, EntityManagerUnfavoritePlaylistRequest, EntityManagerSharePlaylistRequest, EntityManagerCreatePlaylistRequest, EntityManagerUpdatePlaylistRequest, type UpdatePlaylistRequestWithImage, type CreatePlaylistRequestWithFiles, type UploadPlaylistRequest, type PlaylistsApiServicesConfig } from './types'; export declare class PlaylistsApi extends GeneratedPlaylistsApi { private readonly storage; private readonly entityManager?; private readonly trackUploadHelper; private readonly tracksApi; constructor(configuration: Configuration, services: PlaylistsApiServicesConfig); /** @hidden * Create a playlist from existing tracks */ createPlaylistWithEntityManager(params: EntityManagerCreatePlaylistRequest, advancedOptions?: AdvancedOptions): Promise<{ playlistId: string | undefined; blockHash: string; blockNumber: number; transactionHash: string; }>; createPlaylist(params: CreatePlaylistRequestWithFiles, requestInit?: RequestInit): Promise; /** @hidden * Upload a playlist * Uploads the specified tracks and combines them into a playlist */ uploadPlaylist(params: UploadPlaylistRequest, requestInit?: RequestInit): Promise; /** @hidden * Publish a playlist * Changes a playlist from private to public */ publishPlaylist(params: PublishPlaylistRequest, advancedOptions?: AdvancedOptions): Promise; /** @hidden * Add a single track to the end of a playlist * For more control use updatePlaylist */ addTrackToPlaylist(params: AddTrackToPlaylistRequest, advancedOptions?: AdvancedOptions): Promise; /** @hidden * Removes a single track at the given index of playlist * For more control use updatePlaylist */ removeTrackFromPlaylist(params: RemoveTrackFromPlaylistRequest, advancedOptions?: AdvancedOptions): Promise; /** @hidden * Update a playlist */ updatePlaylistWithEntityManager(params: EntityManagerUpdatePlaylistRequest, advancedOptions?: AdvancedOptions): Promise; updatePlaylist(params: UpdatePlaylistRequestWithImage, requestInit?: RequestInit): Promise; /** @hidden * Delete a playlist */ deletePlaylistWithEntityManager(params: EntityManagerDeletePlaylistRequest, advancedOptions?: AdvancedOptions): Promise; deletePlaylist(params: DeletePlaylistRequest, requestInit?: RequestInit): Promise; /** @hidden * Favorite a playlist */ favoritePlaylistWithEntityManager(params: EntityManagerFavoritePlaylistRequest, advancedOptions?: AdvancedOptions): Promise; favoritePlaylist(params: FavoritePlaylistRequest, requestInit?: RequestInit): Promise; /** @hidden * Unfavorite a playlist */ unfavoritePlaylistWithEntityManager(params: EntityManagerUnfavoritePlaylistRequest, advancedOptions?: AdvancedOptions): Promise; unfavoritePlaylist(params: UnfavoritePlaylistRequest, requestInit?: RequestInit): Promise; /** @hidden * Repost a playlist */ repostPlaylistWithEntityManager(params: EntityManagerRepostPlaylistRequest, advancedOptions?: AdvancedOptions): Promise; repostPlaylist(params: RepostPlaylistRequest, requestInit?: RequestInit): Promise; /** @hidden * Unrepost a playlist */ unrepostPlaylistWithEntityManager(params: EntityManagerUnrepostPlaylistRequest, advancedOptions?: AdvancedOptions): Promise; unrepostPlaylist(params: UnrepostPlaylistRequest, requestInit?: RequestInit): Promise; /** @hidden * Share a playlist */ sharePlaylistWithEntityManager(params: EntityManagerSharePlaylistRequest, advancedOptions?: AdvancedOptions): Promise; sharePlaylist(params: SharePlaylistRequest, requestInit?: RequestInit): Promise; /** @internal * Combines the metadata for a track and a collection (playlist or album), * taking the metadata from the playlist when the track is missing it. */ private combineMetadata; /** @internal * Update helper method that first fetches a playlist and then updates it */ private fetchAndUpdatePlaylist; /** @internal * Method to create a playlist from raw inputs, parsing them with CreatePlaylistSchema * This is used for both playlists and albums */ createPlaylistInternal(params: z.input, advancedOptions?: AdvancedOptions): Promise<{ playlistId: string | undefined; blockHash: string; blockNumber: number; transactionHash: string; }>; /** * Generates a new playlist ID * * @hidden */ generatePlaylistId(): Promise; }