import { Definition, DefinitionKind } from './Definition'; import { Reference } from './Reference'; export declare type Metadata = Reference | Definition; /** * Keep all [[Definition]] and references. * Provide methods to query metadata with its associated class or graphql type name. */ export declare class MetadataStorage { protected readonly deferredRegister: Array<() => void>; protected deferredResolved: boolean; readonly definitions: Definition[]; readonly references: Reference[]; deferRegister(metadataFn: () => void): void; protected resolveDeferred(): void; registerMetadata(metadata: Metadata[]): void; /** * * Get a [[Definition]] object which is instance of the `metadataClass` and associated to `linkedClass` * @param metadataClass A [[Definition]] subclass to query * @param classOrName A class associated with metadata to query * @param asKind */ getDefinition(metadataClass: { new (...args: any[]): T; }, classOrName: Function | string, asKind: DefinitionKind): T | undefined; findReference(metadataClass: { new (...args: any[]): T; }, classOrName: Function | string): T[]; } export declare function equalsOrInherits(cls: Function, superClass: Function): boolean; //# sourceMappingURL=MetadataStorage.d.ts.map