import { ChangeSubscription } from '@eclipse-emfcloud/model-manager';
import { ModelManager } from '@eclipse-emfcloud/model-manager/lib/api/model-manager';
import { ModelLoadedCallback, ModelUnloadedCallback } from '../api';
import { ModelTriggerEngine } from './model-trigger-engine';
/**
 * Protocol for a model manager with integrated trigger engine.
 */
export interface ModelServiceModelManager<K> extends ModelManager<K> {
    /** The trigger engine to which triggers may be added. */
    readonly triggerEngine: ModelTriggerEngine<K>;
}
/**
 * Create a new model manager for model services.
 * @returns the model manager
 */
export declare const createModelServiceModelManager: <K>() => ModelServiceModelManager<K>;
/**
 * Specialization of the core Model Manager subscription protocol that adds
 * optional call-backs for model load and unload notifications.
 */
export interface ModelManagerSubscription<K = string, M extends object = object> extends ChangeSubscription<K, M> {
    /** Optional model load call-back. */
    onModelLoaded?: ModelLoadedCallback<K>;
    /** Optional model unload call-back. */
    onModelUnloaded?: ModelUnloadedCallback<K, M>;
}
//# sourceMappingURL=model-service-model-manager.d.ts.map