import { DependencyLifecycle } from '../types';
import { IKosDataModel, IKosModel } from './kosModel';
import { KosModelCacheHandler } from './model-cache';
import { IKosRegistry } from './types';
/**
 * Responsible for creating KOS model instances.
 * Delegates companion model creation to KosCompanionInstantiator.
 */
export declare class KosModelInstantiator {
    private registry;
    private cache;
    private companionInstantiator;
    constructor(registry: IKosRegistry, cache: KosModelCacheHandler);
    createModelInstance<DataDef extends IKosDataModel>(typeId: string, id?: string, options?: Record<string, any>): {
        model: IKosModel<DataDef>;
        data: DataDef;
    };
    /**
     * Creates companion models for a parent model, optionally filtered by lifecycle phase.
     * Delegates to KosCompanionInstantiator for all companion-related logic.
     *
     * @param model The parent model
     * @param options Options to pass to companion constructors
     * @param lifecycle Optional lifecycle filter - only create companions matching this phase
     */
    createCompanionModels(model: IKosModel, options: Record<string, any>, lifecycle?: DependencyLifecycle): void;
    /**
     * @deprecated Use createCompanionModels instead
     * @private
     */
    private _createCompanionModels;
}
//# sourceMappingURL=model-instantiator.d.ts.map