import type { UploadResponse } from '../../services/Storage/types';
import { BaseAPI, type CreateTrackRequestBody, type UpdateTrackRequestBody } from '../generated/default';
import type { PlaylistTrackMetadata } from '../playlists/types';
export declare class TrackUploadHelper extends BaseAPI {
    generateId(type: 'track' | 'playlist'): Promise<number>;
    transformTrackUploadMetadata<TrackMetadata extends Pick<PlaylistTrackMetadata, 'isStreamGated' | 'streamConditions' | 'isUnlisted' | 'fieldVisibility'>>(inputMetadata: TrackMetadata, userId: number): TrackMetadata & {
        ownerId: number;
    };
    transformTrackUploadMetadataV2<T extends CreateTrackRequestBody | UpdateTrackRequestBody>(inputMetadata: T, userId: number): T;
    populateTrackMetadataWithUploadResponseV2<T extends CreateTrackRequestBody | UpdateTrackRequestBody>(trackMetadata: T, audioResponse?: UploadResponse, coverArtResponse?: UploadResponse): T;
    populateTrackMetadataWithUploadResponse(trackMetadata: Partial<PlaylistTrackMetadata>, audioResponse?: UploadResponse, coverArtResponse?: UploadResponse): Partial<{
        title: string;
        trackId?: number | undefined;
        description?: string | null | undefined;
        placementHosts?: string | undefined;
        previewStartSeconds?: number | undefined;
        genre?: import("../generated/default").Genre | undefined;
        ownerId?: number | undefined;
        aiAttributionUserId?: number | undefined;
        fieldVisibility?: {
            mood?: boolean | undefined;
            tags?: boolean | undefined;
            genre?: boolean | undefined;
            share?: boolean | undefined;
            playCount?: boolean | undefined;
            remixes?: boolean | undefined;
        } | undefined;
        mood?: import("../generated/default").Mood | null | undefined;
        tags?: string | null | undefined;
        isrc?: string | null | undefined;
        isUnlisted?: boolean | undefined;
        iswc?: string | null | undefined;
        license?: string | null | undefined;
        isStreamGated?: boolean | undefined;
        streamConditions?: {
            followUserId: number;
        } | {
            tipUserId: number;
        } | {
            tokenGate: {
                tokenMint: string;
                tokenAmount: number;
            };
        } | {
            usdcPurchase: {
                splits: {
                    userId: number;
                    percentage: number;
                }[];
                price: number;
            };
        } | null | undefined;
        accessAuthorities?: string[] | null | undefined;
        isDownloadGated?: boolean | undefined;
        downloadConditions?: {
            followUserId: number;
        } | {
            tipUserId: number;
        } | {
            tokenGate: {
                tokenMint: string;
                tokenAmount: number;
            };
        } | {
            usdcPurchase: {
                splits: {
                    userId: number;
                    percentage: number;
                }[];
                price: number;
            };
        } | null | undefined;
        releaseDate?: Date | undefined;
        remixOf?: {
            tracks: {
                parentTrackId: number;
            }[];
        } | undefined;
        stemOf?: {
            category: import("../../types/StemCategory").StemCategory;
            parentTrackId: number;
        } | undefined;
        duration?: number | undefined;
        audioUploadId?: string | undefined;
        trackCid?: string | undefined;
        previewCid?: string | undefined;
        origFileCid?: string | undefined;
        origFilename?: string | undefined;
        coverArtSizes?: string | undefined;
        isDownloadable?: boolean | undefined;
        isOriginalAvailable?: boolean | undefined;
        ddexReleaseIds?: Record<string, string> | null | undefined;
        ddexApp?: string | null | undefined;
        artists?: {
            name: string;
            roles: string[];
            sequence_number?: number | undefined;
        }[] | null | undefined;
        resourceContributors?: {
            name: string;
            roles: string[];
            sequence_number?: number | undefined;
        }[] | null | undefined;
        indirectResourceContributors?: {
            name: string;
            roles: string[];
            sequence_number?: number | undefined;
        }[] | null | undefined;
        rightsController?: {
            name: string;
            roles: string[];
            rights_share_unknown?: string | undefined;
        } | null | undefined;
        copyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        producerCopyrightLine?: {
            year: string;
            text: string;
        } | null | undefined;
        parentalWarningType?: string | null | undefined;
        bpm?: number | null | undefined;
        isCustomBpm?: boolean | undefined;
        musicalKey?: string | null | undefined;
        isCustomMusicalKey?: boolean | undefined;
        audioAnalysisErrorCount?: number | undefined;
        commentsDisabled?: boolean | undefined;
        isScheduledRelease?: boolean | undefined;
    }> & {
        coverArtSizes?: string | undefined;
    };
}
