// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually. import type { BasicAsset } from "./BasicAsset"; import type { LiteracyLesson } from "./LiteracyLesson"; import type { TranscriptionLink } from "./TranscriptionLink"; /** * The asset storing the material of a particular exercise. */ export type ExerciseAsset = { "BasicAsset": BasicAsset } | { "FlashcardAsset": { /** * The path to the file containing the front of the flashcard. */ front_path: string, /** * The path to the file containing the back of the flashcard. This path is optional, * because a flashcard is not required to provide an answer. For example, the exercise is * open-ended, or it is referring to an external resource which contains the exercise and * possibly the answer. */ back_path: string | null, } } | { "LiteracyAsset": { /** * The type of the lesson. */ lesson_type: LiteracyLesson, /** * The examples to use in the lesson's exercise. */ examples: Array, /** * The exceptions to the examples to use in the lesson's exercise. */ exceptions: Array, } } | { "SoundSliceAsset": { /** * The link to the SoundSlice asset. */ link: string, /** * An optional description of the exercise tied to this asset. For example, "Play this * slice in the key of D Major" or "Practice measures 1 through 4". A missing description * implies the entire slice should be practiced as is. */ description: string | null, /** * An optional path to a MusicXML file containing the sheet music for the exercise. */ backup: string | null, } } | { "TranscriptionAsset": { /** * The content of the exercise. */ content: string, /** * An optional link to the audio for the exercise. */ external_link: TranscriptionLink | null, } };