import { TransactionInstruction } from '@solana/web3.js'; import { AdvancedOptions } from '../../services/EntityManager/types'; import { Configuration, StreamTrackRequest, DownloadTrackRequest, TracksApi as GeneratedTracksApi, type DeleteTrackRequest, type FavoriteTrackRequest, type UnfavoriteTrackRequest, type ShareTrackRequest, type RepostTrackRequest, type UnrepostTrackRequest, type RecordTrackDownloadRequest } from '../generated/default'; import { EntityManagerDeleteTrackRequest, EntityManagerRepostTrackRequest, EntityManagerFavoriteTrackRequest, EntityManagerUnrepostTrackRequest, EntityManagerUnfavoriteTrackRequest, EntityManagerUpdateTrackRequest, PurchaseTrackRequest, GetPurchaseTrackInstructionsRequest, EntityManagerRecordTrackDownloadRequest, UploadTrackFilesRequest, EntityManagerShareTrackRequest, type PublishTrackRequest, type PublishStemRequest, type UploadTrackFilesTask, type UpdateTrackRequestWithFiles, type CreateTrackRequestWithFiles, type TracksApiServicesConfig } from './types'; export declare class TracksApi extends GeneratedTracksApi { private readonly trackUploadHelper; private readonly storage; private readonly entityManager?; private readonly logger; private readonly claimableTokensClient; private readonly paymentRouterClient; private readonly solanaRelay; private readonly solanaClient; constructor(configuration: Configuration, services: TracksApiServicesConfig); /** * Get the url of the track's streamable mp3 file */ getTrackStreamUrl(params: StreamTrackRequest): Promise; /** * Get the url of the track's downloadable file */ getTrackDownloadUrl(params: DownloadTrackRequest): Promise; /** @hidden * Upload track files, does not write to chain */ uploadTrackFiles(params: UploadTrackFilesRequest): UploadTrackFilesTask; /** @hidden * Publishes a track that was uploaded using storage node uploadFileV2 uploads. */ publishTrack(params: PublishTrackRequest, advancedOptions?: AdvancedOptions): Promise<{ trackId: string; blockHash: string; blockNumber: number; transactionHash: string; }>; /** @hidden * Publishes a stem that was uploaded using storage node uploadFileV2 uploads. */ publishStem(params: PublishStemRequest, advancedOptions?: AdvancedOptions): Promise<{ trackId: string; blockHash: string; blockNumber: number; transactionHash: string; }>; /** @hidden * Write track upload to chain */ writeTrackToChain(userId: string, metadata: ReturnType, advancedOptions?: AdvancedOptions): Promise<{ trackId: string; blockHash: string; blockNumber: number; transactionHash: string; }>; createTrack(params: CreateTrackRequestWithFiles, requestInit?: RequestInit): Promise; /** @hidden * Update a track with entity manager */ updateTrackWithEntityManager(params: EntityManagerUpdateTrackRequest, advancedOptions?: AdvancedOptions): Promise; updateTrack(params: UpdateTrackRequestWithFiles, requestInit?: RequestInit): Promise; /** @hidden * Delete a track */ deleteTrackWithEntityManager(params: EntityManagerDeleteTrackRequest, advancedOptions?: AdvancedOptions): Promise; deleteTrack(params: DeleteTrackRequest, requestInit?: RequestInit): Promise; /** @hidden * Favorite a track */ favoriteTrackWithEntityManager(params: EntityManagerFavoriteTrackRequest, advancedOptions?: AdvancedOptions): Promise; favoriteTrack(params: FavoriteTrackRequest, requestInit?: RequestInit): Promise; /** @hidden * Unfavorite a track */ unfavoriteTrackWithEntityManager(params: EntityManagerUnfavoriteTrackRequest, advancedOptions?: AdvancedOptions): Promise; unfavoriteTrack(params: UnfavoriteTrackRequest, requestInit?: RequestInit): Promise; /** @hidden * Share a track */ shareTrackWithEntityManager(params: EntityManagerShareTrackRequest, advancedOptions?: AdvancedOptions): Promise; shareTrack(params: ShareTrackRequest, requestInit?: RequestInit): Promise; /** @hidden * Repost a track */ repostTrackWithEntityManager(params: EntityManagerRepostTrackRequest, advancedOptions?: AdvancedOptions): Promise; repostTrack(params: RepostTrackRequest, requestInit?: RequestInit): Promise; /** @hidden * Unrepost a track */ unrepostTrackWithEntityManager(params: EntityManagerUnrepostTrackRequest, advancedOptions?: AdvancedOptions): Promise; unrepostTrack(params: UnrepostTrackRequest, requestInit?: RequestInit): Promise; /** * @hidden * * Records that a track was downloaded. */ recordTrackDownloadWithEntityManager(params: EntityManagerRecordTrackDownloadRequest, advancedOptions?: AdvancedOptions): Promise; recordTrackDownload(params: RecordTrackDownloadRequest, requestInit?: RequestInit): Promise; /** * Gets the Solana instructions that purchase the track * * @hidden */ getPurchaseTrackInstructions(params: GetPurchaseTrackInstructionsRequest): Promise<{ instructions: { routeInstruction: TransactionInstruction; memoInstruction: TransactionInstruction; locationMemoInstruction: TransactionInstruction | undefined; }; total: bigint; }>; /** * Purchases stream or download access to a track * * @hidden */ purchaseTrack(params: PurchaseTrackRequest): Promise; /** * Generates a new track ID * * @hidden */ generateTrackId(): Promise; }