/**
 * API
 * Audius V1 API
 *
 * 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 { RemixParent } from './RemixParent';
import type { TrackArtwork } from './TrackArtwork';
import type { User } from './User';
/**
 *
 * @export
 * @interface Track
 */
export interface Track {
    /**
     *
     * @type {TrackArtwork}
     * @memberof Track
     */
    artwork?: TrackArtwork;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    description?: string;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    genre?: string;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    id: string;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    trackCid?: string;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    previewCid?: string;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    origFileCid?: string;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    origFilename?: string;
    /**
     *
     * @type {boolean}
     * @memberof Track
     */
    isOriginalAvailable?: boolean;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    mood?: string;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    releaseDate?: string;
    /**
     *
     * @type {RemixParent}
     * @memberof Track
     */
    remixOf?: RemixParent;
    /**
     *
     * @type {number}
     * @memberof Track
     */
    repostCount: number;
    /**
     *
     * @type {number}
     * @memberof Track
     */
    favoriteCount: number;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    tags?: string;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    title: string;
    /**
     *
     * @type {User}
     * @memberof Track
     */
    user: User;
    /**
     *
     * @type {number}
     * @memberof Track
     */
    duration: number;
    /**
     *
     * @type {boolean}
     * @memberof Track
     */
    isDownloadable?: boolean;
    /**
     *
     * @type {number}
     * @memberof Track
     */
    playCount: number;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    permalink?: string;
    /**
     *
     * @type {boolean}
     * @memberof Track
     */
    isStreamable?: boolean;
    /**
     *
     * @type {string}
     * @memberof Track
     */
    ddexApp?: string;
    /**
     *
     * @type {Array<number>}
     * @memberof Track
     */
    playlistsContainingTrack?: Array<number>;
}
/**
 * Check if a given object implements the Track interface.
 */
export declare function instanceOfTrack(value: object): boolean;
export declare function TrackFromJSON(json: any): Track;
export declare function TrackFromJSONTyped(json: any, ignoreDiscriminator: boolean): Track;
export declare function TrackToJSON(value?: Track | null): any;
