import { ClassType } from "type-graphql"; import { IPermission, IResource, ClassTypeResolver, TypeValueThunk, TypeOptions } from "../helpers"; export declare class MetadataStorage { fields: FilterableMetadata[]; resources: ResourceMetadata[]; permissions: PermissionMetadata[]; instances: InstanceMetadata[]; constructor(); collectClassFieldMetadata(definition: FilterableMetadata): void; collectPermissionsMetadata(definition: PermissionMetadata): void; collectResourcesMetadata(definition: ResourceMetadata): void; collectInstanceMetadata(definition: InstanceMetadata): void; clear(): void; } export interface FilterableMetadata { getType?: TypeValueThunk; typeOptions?: TypeOptions | null; getObjectType?: ClassTypeResolver; methodName: string; fieldType: string | ClassType; name: string; target: Function; objectType: any; filterSchema?: any; } export interface PermissionMetadata { getType?: TypeValueThunk; typeOptions?: TypeOptions | null; getObjectType?: ClassTypeResolver; methodName: string; fieldType: string | ClassType; name: string; target: Function; objectType: any; filterSchema?: any; options?: IPermission; } export interface ResourceMetadata { prototype?: any; fieldType: string | ClassType; name: string; target: Function; objectType: any; options?: IResource; } export interface InstanceMetadata { prototype?: any; getObjectType?: ClassTypeResolver; fieldType: string | ClassType; name: string; target: Function; objectType: any; }