export type NodeOrString = Node | string; export type ElementOrString = Element | string; export type NodeFragmentOrString = NodeOrString | DocumentFragment; export type PromiseOrValue = T | PromiseLike; export type PromiseObjectOrArray = { [name: string]: PromiseOrValue } | PromiseOrValue[]; export type PromiseTypedObjectOrArray = { [name: string]: PromiseOrValue } | PromiseOrValue[]; export interface GenericConstructor { new(...args: any[]): T; prototype: T; } export interface GenericObject { [id: string]: any; } export interface GenericFunction { (...args: any[]): T; } export interface Handle { remove(): void; } export interface WatchHandle extends Handle { unwatch(): void; } export interface EventListener { (evt: any): void; } export interface BuildProfile { resourceTags: { [tag: string]: (filename: string, mid?: string) => boolean; }; } export interface Package { location?: string; main?: string; name?: string; } export interface ModuleMap extends ModuleMapItem { [sourceMid: string]: ModuleMapReplacement; } export interface ModuleMapItem { [mid: string]: /* ModuleMapReplacement | ModuleMap */ any; } export interface ModuleMapReplacement extends ModuleMapItem { [findMid: string]: /* replaceMid */ string; }