import type { SVGuitarChord } from './svguitar' ; export type ApiExtension = { [ key ] : any ; } ; export type Constructor < T > = new ( ... args ) => T ; export type AnyFunction = ( ... args : any ) => any ; author https://stackoverflow.com/users/2887218/jcalz
 *  see https type UnionToIntersection < Union > = ( Union extends any ? ( argument : Union ) => void : never ) extends ( argument : infer Intersection ) => void ? Intersection : never ; export type ReturnTypeOf < T extends AnyFunction | AnyFunction [ ] > = T extends AnyFunction ? ReturnType < T > : T extends AnyFunction [ ] ? UnionToIntersection < ReturnType < T [ number ] > > : never ; export type SVGuitarPlugin = ( instance : SVGuitarChord ) => ApiExtension | undefined ;