/**
 * 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 { Access } from './Access';
import type { AccessGate } from './AccessGate';
import type { Favorite } from './Favorite';
import type { PlaylistAddedTimestamp } from './PlaylistAddedTimestamp';
import type { PlaylistArtwork } from './PlaylistArtwork';
import type { Repost } from './Repost';
import type { Track } from './Track';
import type { User } from './User';
/**
 *
 * @export
 * @interface Playlist
 */
export interface Playlist {
    /**
     *
     * @type {PlaylistArtwork}
     * @memberof Playlist
     */
    artwork?: PlaylistArtwork;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    description?: string;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    permalink: string;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    id: string;
    /**
     *
     * @type {boolean}
     * @memberof Playlist
     */
    isAlbum: boolean;
    /**
     *
     * @type {boolean}
     * @memberof Playlist
     */
    isImageAutogenerated: boolean;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    playlistName: string;
    /**
     *
     * @type {Array<PlaylistAddedTimestamp>}
     * @memberof Playlist
     */
    playlistContents: Array<PlaylistAddedTimestamp>;
    /**
     *
     * @type {number}
     * @memberof Playlist
     */
    repostCount: number;
    /**
     *
     * @type {number}
     * @memberof Playlist
     */
    favoriteCount: number;
    /**
     *
     * @type {number}
     * @memberof Playlist
     */
    totalPlayCount: number;
    /**
     *
     * @type {User}
     * @memberof Playlist
     */
    user: User;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    ddexApp?: string;
    /**
     *
     * @type {Access}
     * @memberof Playlist
     */
    access: Access;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    upc?: string;
    /**
     *
     * @type {number}
     * @memberof Playlist
     */
    trackCount: number;
    /**
     *
     * @type {number}
     * @memberof Playlist
     */
    blocknumber: number;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    createdAt: string;
    /**
     *
     * @type {Array<Repost>}
     * @memberof Playlist
     */
    followeeReposts: Array<Repost>;
    /**
     *
     * @type {Array<Favorite>}
     * @memberof Playlist
     */
    followeeFavorites: Array<Favorite>;
    /**
     *
     * @type {boolean}
     * @memberof Playlist
     */
    hasCurrentUserReposted: boolean;
    /**
     *
     * @type {boolean}
     * @memberof Playlist
     */
    hasCurrentUserSaved: boolean;
    /**
     *
     * @type {boolean}
     * @memberof Playlist
     */
    isDelete: boolean;
    /**
     *
     * @type {boolean}
     * @memberof Playlist
     */
    isPrivate: boolean;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    updatedAt: string;
    /**
     * DEPRECATED. Use playlist_contents instead.
     * @type {Array<PlaylistAddedTimestamp>}
     * @memberof Playlist
     */
    addedTimestamps: Array<PlaylistAddedTimestamp>;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    userId: string;
    /**
     *
     * @type {Array<Track>}
     * @memberof Playlist
     */
    tracks?: Array<Track>;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    coverArt?: string;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    coverArtSizes?: string;
    /**
     *
     * @type {PlaylistArtwork}
     * @memberof Playlist
     */
    coverArtCids?: PlaylistArtwork;
    /**
     *
     * @type {boolean}
     * @memberof Playlist
     */
    isStreamGated: boolean;
    /**
     * How to unlock stream access to the track
     * @type {AccessGate}
     * @memberof Playlist
     */
    streamConditions?: AccessGate;
    /**
     *
     * @type {boolean}
     * @memberof Playlist
     */
    isScheduledRelease: boolean;
    /**
     *
     * @type {Date}
     * @memberof Playlist
     */
    releaseDate?: Date;
    /**
     *
     * @type {object}
     * @memberof Playlist
     */
    ddexReleaseIds?: object;
    /**
     *
     * @type {Array<object>}
     * @memberof Playlist
     */
    artists?: Array<object>;
    /**
     *
     * @type {object}
     * @memberof Playlist
     */
    copyrightLine?: object;
    /**
     *
     * @type {object}
     * @memberof Playlist
     */
    producerCopyrightLine?: object;
    /**
     *
     * @type {string}
     * @memberof Playlist
     */
    parentalWarningType?: string | null;
}
/**
 * Check if a given object implements the Playlist interface.
 */
export declare function instanceOfPlaylist(value: object): value is Playlist;
export declare function PlaylistFromJSON(json: any): Playlist;
export declare function PlaylistFromJSONTyped(json: any, ignoreDiscriminator: boolean): Playlist;
export declare function PlaylistToJSON(value?: Playlist | null): any;
