import { PackageAttribute, PackageSetMetadata } from "../../../metadata/PackageMetadata"; import { PackageIdentifier } from "../../../types/reflection/identifier.type"; import { Constructable } from "../../../types/reflection/constructable"; import { Type } from "../../../types/reflection/type"; import { DependancyToken } from "./DependancyToken"; import { Dependancy } from "./Dependancy"; export interface ReflectionFactoryInterface { resolve(attribute: PackageAttribute): Function; resolvePackageDependancies(dependancies: Array>): Array>; normalize(metadata: PackageSetMetadata): PackageAttribute; factory(type: Type): Function; parameters(type: Type): Array; metadata(key: string, type: Type): any; nameOf(type: Constructable | Type | Function): string; resolveToken(token: PackageIdentifier): string; }