import { Transitions } from './model-transition-utils';
import { DependencyLifecycle, KosDependencyParams } from '../types/kos-dependency';
import { IKosDataModel, IKosModel } from '../core/kosModel';

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