import { IKosModel } from '../core/kosModel';
import { DependencyLifecycle, KosDependencyParams } from '../types/kos-dependency';
import { Transitions } from './model-transition-utils';
export { TransitionMap, Transitions } from './model-transition-utils';
export type { ModelPromiseResolver } from './model-transition-utils';
export { isKosDataModel, isKosModelContainer, isPrintable, resolveChild, } from './model-type-guards';
export { ModelError } from './promise-utils';
/**
 * @kosService core.utils
 * @kosApiLevel 2
 */
export interface ModelPromise {
    promise?: Promise<void>;
    modelId?: string;
    model?: IKosModel;
    type?: string;
    status?: string;
}
/**
 * @kosService core.utils
 * @kosApiLevel 2
 */
export declare const createModelDependency: (model: IKosModel, dependency: KosDependencyParams<any>) => {
    dependentModel: null;
    dataModelId: string;
    success: boolean;
} | {
    dependentModel: {
        model: IKosModel<import('../core/kosModel').IKosDataModel>;
        data: import('../core/kosModel').IKosDataModel;
    };
    dataModelId: string;
    success: boolean;
};
/**
 * @kosService core.utils
 * @kosApiLevel 2
 */
export declare const getDependenciesByLifecycle: (model: IKosModel, lifecycle?: DependencyLifecycle) => Promise<void>[];
/**
 * @kosService core.utils
 * @kosApiLevel 2
 */
export declare const executeListLifecycle: (sourceModel: IKosModel, models: (IKosModel | undefined)[], target: Transitions, sourceLifecycle: DependencyLifecycle) => Promise<void>;
/**
 * @kosService core.utils
 * @kosApiLevel 2
 */
export declare const executeChildrenModelLifecycle: (model: IKosModel, target: Transitions, sourceLifecycle: DependencyLifecycle) => Promise<void>;
/**
 * @kosService core.utils
 * @kosApiLevel 2
 */
export declare const executeDependentModelLifecycle: (model: IKosModel, lifecycle: DependencyLifecycle) => Promise<void>;
//# sourceMappingURL=model-utils.d.ts.map