export type JapaneseMouthShape =
  | "a"
  | "i"
  | "u"
  | "e"
  | "o"
  | "closed"
  | "rest";

export type MouthCue = Readonly<{
  start: number;
  end: number;
  mouth: JapaneseMouthShape;
  source: string;
}>;

export type MouthTimeline = Readonly<{
  version: 1;
  source: Readonly<{
    audio: string;
    engine: "rhubarb-lip-sync";
    recognizer: "phonetic";
  }>;
  duration: number;
  cues: MouthCue[];
}>;

export type MouthTimelineManifest = Readonly<{
  version: 1;
  timelines: Record<string, MouthTimeline>;
}>;
