export interface CharaFile { charaVersion: 1; type: T; } export interface CharaLayoutFile extends CharaFile<"layout"> { device?: "ONE" | "LITE" | string; layout: [number[], number[], number[]]; } export interface CharaChordFile extends CharaFile<"chords"> { chords: [number[], number[]][]; } export interface CharaSettingsFile extends CharaFile<"settings"> { settings: number[]; } export interface CharaBackupFile extends CharaFile<"backup"> { history: [CharaChordFile, CharaLayoutFile, CharaSettingsFile][]; } export type CharaFiles = CharaLayoutFile | CharaChordFile | CharaSettingsFile;