import { BaseKosModelRegistrationBean, ModelFactory } from '../types';
import { IKosDataModel, IKosDataModelBuilder } from './kosModel';
import { IKosRegistry, KosCompanionModelType } from './types/registration';
export declare class KosModelRegistry {
    private _registry;
    constructor(_registry: IKosRegistry);
    get registry(): IKosRegistry;
    getModelTypeRegistry(typeId: string): import('./types/registration').IKosModelRegistration;
    registerModel<T extends BaseKosModelRegistrationBean<any, any>>(reg: T): void;
    registerCompanionModel(typeId: string, companion: KosCompanionModelType<any>): void;
    getModelSubscriptions(typeId: string): Record<string, import('./types/registration').IKosSubscriptionSpecification>;
    getDataModelBuilder<D, M extends IKosDataModel>(typeId: string): IKosDataModelBuilder<D, M>;
    getModelFactory<T extends IKosDataModel>(modelType: string): ModelFactory<T>;
}
//# sourceMappingURL=model-registry.d.ts.map