import type { Binding } from '../binding/Binding.js'; import type { ScopeAnchor } from './ScopeAnchor.js'; export declare enum Scope { TRANSIENT = "TRANSIENT", SINGLETON = "SINGLETON" } export type CustomScopeName = 'CUSTOM'; export interface EncapsulatedScope { name: S; } export interface ScopeFactory { create(...args: unknown[]): EncapsulatedScope; } export interface ScopeResolver { canResolve(binding: Binding, anchor: ScopeAnchor | null): boolean; resolve(binding: Binding, scope: A | null): V; }