/**
 * @kosService core.dependency
 */
export declare enum DependencyLifecycle {
    INIT = "init",
    LOAD = "load",
    READY = "ready",
    ACTIVATE = "activate",
    ONLINE = "online"
}
/**
 * Policy for handling dependency resolution failures.
 *
 * @kosService core.dependency
 *
 * All policies follow a lookup-first approach: The framework first checks if a model
 * with the specified ID already exists. If found and the type matches, it returns the
 * existing instance. Only if no existing model is found does the framework apply the
 * resolution policy below.
 */
export declare enum DependencyResolutionPolicy {
    /**
     * CREATE (default) - After lookup fails, attempt to create a new instance of the model.
     * If the model requires options (via optionsRequired flag) and none are provided,
     * it will fail with an exception.
     */
    CREATE = "create",
    /**
     * CONTINUE - After lookup fails, do not attempt to create a new instance.
     * The property will be set to undefined. Log the failure but allow execution to continue.
     * Use for optional dependencies that can degrade gracefully.
     */
    CONTINUE = "continue",
    /**
     * FAIL - After lookup fails, throw an exception with detailed diagnostic logging.
     * Use for critical dependencies where failure should halt execution.
     */
    FAIL = "fail"
}
/**
 * The parameters for the kosDependency decorator.
 *
 * @kosService core.dependency
 * @kosApiLevel 2
 */
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.
     *
     * All policies first attempt to look up an existing model instance. If found and the type
     * matches, the existing instance is returned. Only if lookup fails does the policy apply:
     *
     * - CREATE (default): Attempts to create model instance after lookup fails
     * - CONTINUE: Returns undefined after lookup fails, allows graceful degradation
     * - FAIL: Throws exception with detailed logging after lookup fails
     * @kosApiLevel 16
     */
    resolutionPolicy?: DependencyResolutionPolicy;
}
//# sourceMappingURL=kos-dependency.d.ts.map