import { Type } from '@angular/core';
import { Dictionary } from '@jscrpt/common';
import * as i0 from "@angular/core";
/**
 * Register for statically typed components that are part of relations
 */
export declare abstract class StaticComponentsRegister {
    /**
     * Object storing defined types
     */
    protected _definedTypes: Dictionary<Type<any>>;
    /**
     * Gets available types that are used as static components
     */
    get types(): string[];
    /**
     * Gets type by its name
     * @param name - Name of type that should be obtained
     */
    getType(name: string): Type<any> | null;
    /**
     * Gets defined static components types containing metadata
     */
    protected abstract getDefinedTypes(): Dictionary<Type<any>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<StaticComponentsRegister, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<StaticComponentsRegister>;
}
//# sourceMappingURL=staticComponentsRegister.service.d.ts.map