import {Constructor, FirstArgumentOfConstructor} from '../utils'; export class Factory { public __agentConstructor: Function; public __constructor: new (...arg: any[]) => T; constructor() { } get(argument: FirstArgumentOfConstructor>): T { return null; } getFactory(classConstructor: new (arg: U, ...args: any[]) => T): (arg: U) => T { return null; } update(params: any) { } }