import { Constructor } from "../interfaces"; import { ActivationType } from "../di/interfaces"; namespace MyLib { interface Resolver { (name: K): S[K]; (lazy: K): (overrides?: {}) => S[K]; } interface RegistrationOptions { activation?: ActivationType; services?: BuilderContext; } interface BuilderContext { registerType( name: K, constructor: T, options?: RegistrationOptions ): BuilderContext; registerFactory( name: K, factory: (resolver: Resolver) => T, options?: RegistrationOptions ): BuilderContext; registerInstance( name: K, instance: T, ownership?: boolean ): BuilderContext; } } export = MyLib;