/** * Group of packages which are available at runtime under the same global, with loaders for * the global object and the packages' types. */ export interface IPackageGroup { /** Name of the global this group of packages' exports will be available from at runtime */ globalName: string; /** * Load the module which will be made available under `globalName`. * The loader function can either return a promise or take a callback. */ loadGlobal: (() => Promise) | ((cb: (globalResult: any) => void) => void); /** Packages whose exports are available at runtime from `globalName` */ packages: IPackage[]; } /** Name and typings loader for a package */ export interface IPackage { /** npm package name (*not* `@types` package name) */ packageName: string; /** Loader function for this package's .d.ts file contents */ loadTypes: () => string | Promise; } /** Version of IPackageGroup without the loaders */ export declare type IBasicPackageGroup = Required> & { packages: Required>[]; };