export interface BaseConstructor { new (...args: any[]): T; } export interface BaseFactory { (xmlObject: any): T; } export declare abstract class BaseRegistry { protected readonly registryName: string; private static registries; constructor(registryName: string); register(tagName: string, classType: BaseConstructor, factory: BaseFactory): void; getConstructor(tagName: string): BaseConstructor | undefined; getFactory(tagName: string): BaseFactory | undefined; protected getRegistry(): { [key: string]: { constructor: BaseConstructor; factory: BaseFactory; }; }; }