/** * Interface for a no-arg function that can create an instance of the given type */ export declare type Factory = () => T; /** * Interface for objects with a no-arg constructor */ export interface Constructor { new (): T; } /** * A no-arg constructor or a no-arg function that can create * type T */ export declare type Maker = Factory | Constructor; /** * Convert a factory function with no arguments or a class with a no arg * constructor to a factory function * @param {Maker} fact * @return {Factory} */ export declare function toFactory(fact: Maker): Factory;