declare type Constructor = { new (...args: any): T; }; export interface Resource { id: string; type: Constructor; get: () => T; } export default class ResourceManager { resources: Map; register(resource: Resource): void; get(id: string, type: Constructor): T; findIfExists(filter: F, type: { new (...args: any): T; filter: { new (...args: any): F; }; }): T | undefined; find(filter: F, type: { new (...args: any): T; filter: { new (...args: any): F; }; }): T; } export {};