@dipscope/type-manager
Version:
Transform JSON strings or plain objects into JS class instances.
90 lines • 3.12 kB
TypeScript
import { Alias } from './alias';
import { GenericArgument } from './generic-argument';
import { GenericMetadata } from './generic-metadata';
import { TypeArgument } from './type-argument';
import { TypeFn } from './type-fn';
import { TypeManager } from './type-manager';
import { TypeMetadata } from './type-metadata';
/**
* Metadata class.
*
* Encapsulates common methods and properties which can be used by all types of metadata.
*
* @type {Metadata}
*/
export declare class Metadata {
/**
* Type manager.
*
* @type {TypeManager}
*/
readonly typeManager: TypeManager;
/**
* Type function map for types with aliases.
*
* @type {ReadonlyMap<Alias, TypeFn<any>>}
*/
private readonly typeFnMap;
/**
* Constructor.
*
* @param {TypeManager} typeManager Type manager.
* @param {ReadonlyMap<Alias, TypeFn<any>>} typeFnMap Type function map for types with aliases.
*/
constructor(typeManager: TypeManager, typeFnMap: ReadonlyMap<Alias, TypeFn<any>>);
/**
* Resolves type metadatas for provided type arguments.
*
* @param {ReadonlyArray<TypeArgument<any>>} typeArguments Type arguments.
*
* @returns {ReadonlyArray<TypeMetadata<any>>} Resolved type metadatas.
*/
resolveTypeMetadatas(typeArguments: ReadonlyArray<TypeArgument<any>>): ReadonlyArray<TypeMetadata<any>>;
/**
* Resolves type metadata for provided type argument.
*
* @param {TypeArgument<any>} typeArgument Type argument.
*
* @returns {TypeMetadata<any>} Resolved type metadata.
*/
resolveTypeMetadata(typeArgument: TypeArgument<any>): TypeMetadata<any>;
/**
* Resolves type metadata using type resolver.
*
* @param {TypeMetadata<any>} typeArgument Type argument.
*
* @returns {TypeMetadata<any>} Type metadata resolved using type resolver.
*/
private resolveTypeMetadataUsingTypeResolver;
/**
* Resolves type metadata using type function.
*
* @param {TypeMetadata<any>} typeArgument Type argument.
*
* @returns {TypeMetadata<any>} Type metadata resolved using type function.
*/
private resolveTypeMetadataUsingTypeFn;
/**
* Resolves type metadata using alias.
*
* @param {TypeArgument<any>} typeArgument Type argument.
*
* @returns {TypeMetadata<any>} Type metadata resolved using alias.
*/
private resolveTypeMetadataUsingAlias;
/**
* Resolves type metadata using unknown type function.
*
* @returns {TypeMetadata<any>} Type metadata resolved using unknown type function.
*/
private resolveTypeMetadataUsingUnknownTypeFn;
/**
* Resolves generic metadatas based on provided generic arguments.
*
* @param {ReadonlyArray<GenericArgument<any>>} genericArguments Generic arguments.
*
* @returns {ReadonlyArray<GenericMetadata<any>>} Resolved generic metadatas.
*/
resolveGenericMetadatas(genericArguments: ReadonlyArray<GenericArgument<any>>): ReadonlyArray<GenericMetadata<any>>;
}
//# sourceMappingURL=metadata.d.ts.map