/**
 * API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { Access } from './Access';
import type { CoverArt } from './CoverArt';
import type { DownloadMetadata } from './DownloadMetadata';
import type { Favorite } from './Favorite';
import type { FieldVisibility } from './FieldVisibility';
import type { FullRemixParent } from './FullRemixParent';
import type { Repost } from './Repost';
import type { StemParent } from './StemParent';
import type { TrackArtwork } from './TrackArtwork';
import type { TrackSegment } from './TrackSegment';
import type { UserFull } from './UserFull';
/**
 *
 * @export
 * @interface TrackFull
 */
export interface TrackFull {
    /**
     *
     * @type {TrackArtwork}
     * @memberof TrackFull
     */
    artwork?: TrackArtwork;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    description?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    genre?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    id: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    trackCid?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    previewCid?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    origFileCid?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    origFilename?: string;
    /**
     *
     * @type {boolean}
     * @memberof TrackFull
     */
    isOriginalAvailable?: boolean;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    mood?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    releaseDate?: string;
    /**
     *
     * @type {FullRemixParent}
     * @memberof TrackFull
     */
    remixOf?: FullRemixParent;
    /**
     *
     * @type {number}
     * @memberof TrackFull
     */
    repostCount: number;
    /**
     *
     * @type {number}
     * @memberof TrackFull
     */
    favoriteCount: number;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    tags?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    title: string;
    /**
     *
     * @type {UserFull}
     * @memberof TrackFull
     */
    user: UserFull;
    /**
     *
     * @type {number}
     * @memberof TrackFull
     */
    duration: number;
    /**
     *
     * @type {boolean}
     * @memberof TrackFull
     */
    isDownloadable?: boolean;
    /**
     *
     * @type {number}
     * @memberof TrackFull
     */
    playCount: number;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    permalink?: string;
    /**
     *
     * @type {boolean}
     * @memberof TrackFull
     */
    isStreamable?: boolean;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    ddexApp?: string;
    /**
     *
     * @type {Array<number>}
     * @memberof TrackFull
     */
    playlistsContainingTrack?: Array<number>;
    /**
     *
     * @type {number}
     * @memberof TrackFull
     */
    blocknumber: number;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    createDate?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    coverArtSizes?: string;
    /**
     *
     * @type {CoverArt}
     * @memberof TrackFull
     */
    coverArtCids?: CoverArt;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    createdAt?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    creditsSplits?: string;
    /**
     *
     * @type {DownloadMetadata}
     * @memberof TrackFull
     */
    download?: DownloadMetadata;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    isrc?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    license?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    iswc?: string;
    /**
     *
     * @type {FieldVisibility}
     * @memberof TrackFull
     */
    fieldVisibility?: FieldVisibility;
    /**
     *
     * @type {Array<Repost>}
     * @memberof TrackFull
     */
    followeeReposts: Array<Repost>;
    /**
     *
     * @type {boolean}
     * @memberof TrackFull
     */
    hasCurrentUserReposted: boolean;
    /**
     *
     * @type {boolean}
     * @memberof TrackFull
     */
    isScheduledRelease?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof TrackFull
     */
    isUnlisted: boolean;
    /**
     *
     * @type {boolean}
     * @memberof TrackFull
     */
    hasCurrentUserSaved: boolean;
    /**
     *
     * @type {Array<Favorite>}
     * @memberof TrackFull
     */
    followeeFavorites: Array<Favorite>;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    routeId: string;
    /**
     *
     * @type {StemParent}
     * @memberof TrackFull
     */
    stemOf?: StemParent;
    /**
     *
     * @type {Array<TrackSegment>}
     * @memberof TrackFull
     */
    trackSegments?: Array<TrackSegment>;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    updatedAt?: string;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    userId: string;
    /**
     *
     * @type {boolean}
     * @memberof TrackFull
     */
    isDelete?: boolean;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    coverArt?: string;
    /**
     *
     * @type {boolean}
     * @memberof TrackFull
     */
    isAvailable?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof TrackFull
     */
    isStreamGated?: boolean;
    /**
     *
     * @type {object}
     * @memberof TrackFull
     */
    streamConditions?: object;
    /**
     *
     * @type {boolean}
     * @memberof TrackFull
     */
    isDownloadGated?: boolean;
    /**
     *
     * @type {object}
     * @memberof TrackFull
     */
    downloadConditions?: object;
    /**
     *
     * @type {Access}
     * @memberof TrackFull
     */
    access?: Access;
    /**
     *
     * @type {number}
     * @memberof TrackFull
     */
    aiAttributionUserId?: number;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    audioUploadId?: string;
    /**
     *
     * @type {number}
     * @memberof TrackFull
     */
    previewStartSeconds?: number;
    /**
     *
     * @type {object}
     * @memberof TrackFull
     */
    ddexReleaseIds?: object;
    /**
     *
     * @type {object}
     * @memberof TrackFull
     */
    artists?: object;
    /**
     *
     * @type {object}
     * @memberof TrackFull
     */
    resourceContributors?: object;
    /**
     *
     * @type {object}
     * @memberof TrackFull
     */
    indirectResourceContributors?: object;
    /**
     *
     * @type {object}
     * @memberof TrackFull
     */
    copyrightLine?: object;
    /**
     *
     * @type {object}
     * @memberof TrackFull
     */
    producerCopyrightLine?: object;
    /**
     *
     * @type {string}
     * @memberof TrackFull
     */
    parentalWarningType?: string;
}
/**
 * Check if a given object implements the TrackFull interface.
 */
export declare function instanceOfTrackFull(value: object): boolean;
export declare function TrackFullFromJSON(json: any): TrackFull;
export declare function TrackFullFromJSONTyped(json: any, ignoreDiscriminator: boolean): TrackFull;
export declare function TrackFullToJSON(value?: TrackFull | null): any;
