/******************************************************************************* * Copyright (c) 2021. Rex Isaac Raphael * * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files * (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * File name: storage.ts * Last modified: 21/03/2021, 11:37 ******************************************************************************/ import { ClassType } from './class-type.interface'; export declare class MetadataStorage { instances: InstanceMetadata[]; strategies: InstanceMetadata[]; constructor(); collectLbStrategyMetadata(definition: InstanceMetadata): void; clear(): void; } export declare type TypeValue = ClassType | Function | object | symbol; export declare type TypeValueThunk = (type?: void) => TypeValue; export declare type ClassTypeResolver = (of?: void) => ClassType; export interface InstanceMetadata { name: string; target: Function; prototype?: any; property?: any; getObjectType?: ClassTypeResolver; fieldType?: string | ClassType; objectType?: any; }