/**
 * 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 { AccessGate } from './AccessGate';
import type { CreatePlaylistRequestBodyCopyrightLine } from './CreatePlaylistRequestBodyCopyrightLine';
import type { CreatePlaylistRequestBodyProducerCopyrightLine } from './CreatePlaylistRequestBodyProducerCopyrightLine';
import type { DdexResourceContributor } from './DdexResourceContributor';
import type { Genre } from './Genre';
import type { Mood } from './Mood';
import type { PlaylistAddedTimestamp } from './PlaylistAddedTimestamp';
/**
 * Request body for updating playlist information. All fields are optional.
 * @export
 * @interface UpdatePlaylistRequestBody
 */
export interface UpdatePlaylistRequestBody {
    /**
     * Playlist or album name
     * @type {string}
     * @memberof UpdatePlaylistRequestBody
     */
    playlistName?: string;
    /**
     * Playlist description
     * @type {string}
     * @memberof UpdatePlaylistRequestBody
     */
    description?: string;
    /**
     * Whether the playlist is private
     * @type {boolean}
     * @memberof UpdatePlaylistRequestBody
     */
    isPrivate?: boolean;
    /**
     * Whether this is an album
     * @type {boolean}
     * @memberof UpdatePlaylistRequestBody
     */
    isAlbum?: boolean;
    /**
     *
     * @type {Genre}
     * @memberof UpdatePlaylistRequestBody
     */
    genre?: Genre;
    /**
     *
     * @type {Mood}
     * @memberof UpdatePlaylistRequestBody
     */
    mood?: Mood;
    /**
     * Comma-separated tags
     * @type {string}
     * @memberof UpdatePlaylistRequestBody
     */
    tags?: string;
    /**
     * License type
     * @type {string}
     * @memberof UpdatePlaylistRequestBody
     */
    license?: string;
    /**
     * Universal Product Code (for albums)
     * @type {string}
     * @memberof UpdatePlaylistRequestBody
     */
    upc?: string;
    /**
     * Release date
     * @type {Date}
     * @memberof UpdatePlaylistRequestBody
     */
    releaseDate?: Date;
    /**
     * CID for the playlist cover art
     * @type {string}
     * @memberof UpdatePlaylistRequestBody
     */
    playlistImageSizesMultihash?: string;
    /**
     * Array of track IDs to include in the playlist
     * @type {Array<PlaylistAddedTimestamp>}
     * @memberof UpdatePlaylistRequestBody
     */
    playlistContents?: Array<PlaylistAddedTimestamp>;
    /**
     * Whether streaming is restricted behind an access gate
     * @type {boolean}
     * @memberof UpdatePlaylistRequestBody
     */
    isStreamGated?: boolean | null;
    /**
     * Whether the playlist/album is a scheduled release
     * @type {boolean}
     * @memberof UpdatePlaylistRequestBody
     */
    isScheduledRelease?: boolean | null;
    /**
     *
     * @type {AccessGate}
     * @memberof UpdatePlaylistRequestBody
     */
    streamConditions?: AccessGate | null;
    /**
     * DDEX application identifier
     * @type {string}
     * @memberof UpdatePlaylistRequestBody
     */
    ddexApp?: string;
    /**
     * DDEX release identifiers
     * @type {{ [key: string]: string; }}
     * @memberof UpdatePlaylistRequestBody
     */
    ddexReleaseIds?: {
        [key: string]: string;
    } | null;
    /**
     * DDEX resource contributors / artists
     * @type {Array<DdexResourceContributor>}
     * @memberof UpdatePlaylistRequestBody
     */
    artists?: Array<DdexResourceContributor> | null;
    /**
     *
     * @type {CreatePlaylistRequestBodyCopyrightLine}
     * @memberof UpdatePlaylistRequestBody
     */
    copyrightLine?: CreatePlaylistRequestBodyCopyrightLine | null;
    /**
     *
     * @type {CreatePlaylistRequestBodyProducerCopyrightLine}
     * @memberof UpdatePlaylistRequestBody
     */
    producerCopyrightLine?: CreatePlaylistRequestBodyProducerCopyrightLine | null;
    /**
     * Parental warning type
     * @type {string}
     * @memberof UpdatePlaylistRequestBody
     */
    parentalWarningType?: string | null;
    /**
     * Whether the image is autogenerated
     * @type {boolean}
     * @memberof UpdatePlaylistRequestBody
     */
    isImageAutogenerated?: boolean | null;
}
/**
 * Check if a given object implements the UpdatePlaylistRequestBody interface.
 */
export declare function instanceOfUpdatePlaylistRequestBody(value: object): value is UpdatePlaylistRequestBody;
export declare function UpdatePlaylistRequestBodyFromJSON(json: any): UpdatePlaylistRequestBody;
export declare function UpdatePlaylistRequestBodyFromJSONTyped(json: any, ignoreDiscriminator: boolean): UpdatePlaylistRequestBody;
export declare function UpdatePlaylistRequestBodyToJSON(value?: UpdatePlaylistRequestBody | null): any;
