export declare enum DependencyLifecycle {
    INIT = "init",
    LOAD = "load",
    READY = "ready",
    ACTIVATE = "activate",
    ONLINE = "online"
}
/**
 * Policy for handling dependency resolution failures.
 */
export declare enum DependencyResolutionPolicy {
    /**
     * CREATE (default) - Attempt to create a new instance of the model if it doesn't exist.
     * If the model expects options and none are provided, it will fail with an exception.
     */
    CREATE = "create",
    /**
     * CONTINUE - Do not create a new instance if the dependency cannot be resolved.
     * The property will be set to undefined/null. Log the failure but allow execution to continue.
     */
    CONTINUE = "continue",
    /**
     * FAIL - Throw an exception and log detailed failure information if the dependency cannot be resolved.
     */
    FAIL = "fail"
}
/**
 * The parameters for the kosDependency decorator.
 * */
export interface KosDependencyParams<Options = unknown> {
    /** The type of the model to be injected. */
    modelType: string;
    /** The id of the model to be injected. */
    id?: string;
    /** The options to be passed to the model constructor. */
    options?: Options;
    /** The lifecycle at which the dependency should be injected. */
    lifecycle?: DependencyLifecycle;
    /**
     * Policy for handling dependency resolution failures.
     * - CREATE (default): Attempts to create model instance, fails if options are missing
     * - CONTINUE: Logs error but continues with undefined dependency
     * - FAIL: Throws exception with detailed error logging
     */
    resolutionPolicy?: DependencyResolutionPolicy;
}
//# sourceMappingURL=kos-dependency.d.ts.map