type MediaPoolsChildren = { Gobos: GoboImages; Symbols: Symbols; Images: Images; MeshImagePool: MeshImagePool; Videos: Videos; Sounds: Sounds; }; type MediaPools = Obj & MediaPoolsChildren; type MediaObj = GoboImage | SymbolImage | UserImage | MeshImage | Video | Sound; type GoboImages = Obj; type GoboImage = Obj; type Symbols = Obj; type SymbolImage = Obj; type Images = Obj & UserImage[] & { [index: string]: UserImage }; type UserImage = Obj & { note: string }; type MeshImagePool = Obj; type MeshImage = Obj; type Videos = Obj; type Video = Obj; type Sounds = Obj; type Sound = Obj;