// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT

/**
 * RepeatMode represents the queue repeat behavior.
 */
export enum RepeatMode {
    /**
     * The Go zero value for the underlying type of the enum.
     */
    $zero = "",

    /**
     * Repeat mode values.
     */
    RepeatOff = "off",
    RepeatAll = "all",
    RepeatOne = "one",
};

/**
 * Source describes the collection a queue was built from — an album, a
 * playlist, a genre, an artist — so the frontend can offer to navigate
 * back to it. An empty Type means the queue has no single source (the
 * whole library, or one ad-hoc track).
 */
export interface Source {
    "type": string;
    "id": number;
    "label": string;
}

/**
 * State is the full state emitted to the frontend.
 */
export interface State {
    "tracks": Track[] | null;
    "currentIndex": number;
    "shuffleMode": boolean;
    "repeatMode": RepeatMode;
    "source": Source;
}

/**
 * Track represents a track in the queue with its metadata.
 */
export interface Track {
    "id": number;
    "audioFileId": number;
    "filePath": string;
    "position": number;
    "title": string;
    "artist": string;
    "album": string;
    "coverArtPath": string;
    "artistMbid": string;
    "releaseGroupMbid": string;
    "recordingMbid": string;
}
