/**
 * 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 { FieldVisibility } from './FieldVisibility';
import type { Genre } from './Genre';
import type { Mood } from './Mood';
import type { RemixParentWrite } from './RemixParentWrite';
import type { StemParent } from './StemParent';
/**
 * Request body for updating track information. All fields are optional.
 * @export
 * @interface UpdateTrackRequestBody
 */
export interface UpdateTrackRequestBody {
    /**
     * Track title
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    title?: string;
    /**
     *
     * @type {Genre}
     * @memberof UpdateTrackRequestBody
     */
    genre?: Genre;
    /**
     * Track description
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    description?: string | null;
    /**
     *
     * @type {Mood}
     * @memberof UpdateTrackRequestBody
     */
    mood?: Mood | null;
    /**
     * Beats per minute (tempo)
     * @type {number}
     * @memberof UpdateTrackRequestBody
     */
    bpm?: number | null;
    /**
     * Musical key of the track
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    musicalKey?: string | null;
    /**
     * Comma-separated tags
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    tags?: string | null;
    /**
     * License type
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    license?: string | null;
    /**
     * International Standard Recording Code
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    isrc?: string | null;
    /**
     * International Standard Musical Work Code
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    iswc?: string | null;
    /**
     * Release date
     * @type {Date}
     * @memberof UpdateTrackRequestBody
     */
    releaseDate?: Date;
    /**
     * CID for the track audio file
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    trackCid?: string;
    /**
     * CID for the original track file
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    origFileCid?: string;
    /**
     * Original filename of the track
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    origFilename?: string;
    /**
     * CID for the track cover art
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    coverArtSizes?: string;
    /**
     * CID for the track preview
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    previewCid?: string;
    /**
     * Preview start time in seconds
     * @type {number}
     * @memberof UpdateTrackRequestBody
     */
    previewStartSeconds?: number;
    /**
     * Track duration in seconds
     * @type {number}
     * @memberof UpdateTrackRequestBody
     */
    duration?: number;
    /**
     * Whether the track is downloadable
     * @type {boolean}
     * @memberof UpdateTrackRequestBody
     */
    isDownloadable?: boolean;
    /**
     * Whether the track is unlisted
     * @type {boolean}
     * @memberof UpdateTrackRequestBody
     */
    isUnlisted?: boolean;
    /**
     * Whether streaming is restricted behind an access gate
     * @type {boolean}
     * @memberof UpdateTrackRequestBody
     */
    isStreamGated?: boolean;
    /**
     * Wallet addresses that can sign to authorize stream access (programmable distribution). When empty or omitted, the track is public and validator/creator nodes can serve it.
     * @type {Array<string>}
     * @memberof UpdateTrackRequestBody
     */
    accessAuthorities?: Array<string> | null;
    /**
     *
     * @type {AccessGate}
     * @memberof UpdateTrackRequestBody
     */
    streamConditions?: AccessGate | null;
    /**
     *
     * @type {AccessGate}
     * @memberof UpdateTrackRequestBody
     */
    downloadConditions?: AccessGate | null;
    /**
     *
     * @type {FieldVisibility}
     * @memberof UpdateTrackRequestBody
     */
    fieldVisibility?: FieldVisibility;
    /**
     * Placement hosts for the track
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    placementHosts?: string;
    /**
     *
     * @type {StemParent}
     * @memberof UpdateTrackRequestBody
     */
    stemOf?: StemParent;
    /**
     *
     * @type {RemixParentWrite}
     * @memberof UpdateTrackRequestBody
     */
    remixOf?: RemixParentWrite;
    /**
     * DDEX application identifier
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    ddexApp?: string | null;
    /**
     * Parental warning type
     * @type {string}
     * @memberof UpdateTrackRequestBody
     */
    parentalWarningType?: string | null;
}
/**
 * Check if a given object implements the UpdateTrackRequestBody interface.
 */
export declare function instanceOfUpdateTrackRequestBody(value: object): value is UpdateTrackRequestBody;
export declare function UpdateTrackRequestBodyFromJSON(json: any): UpdateTrackRequestBody;
export declare function UpdateTrackRequestBodyFromJSONTyped(json: any, ignoreDiscriminator: boolean): UpdateTrackRequestBody;
export declare function UpdateTrackRequestBodyToJSON(value?: UpdateTrackRequestBody | null): any;
