export declare const Type: FunctionConstructor; export interface Type { new (...args: any[]): T; } export type Func = (...args: any[]) => T; export declare class TypeResolver { types: Map, Func>; predicates: Array<[Func, Func]>; register(type: Type, resolver: Func): this; registerPredicate(predicate: Func, resolver: Func): this; get(type: Type): Func | undefined; }