export declare enum Scope { SINGLETON = "singleton", TRANSIENT = "transient", REQUEST = "request" } export interface DIOptions { scope?: Scope; token?: string; factory?: () => any; dependencies?: string[]; } export interface Provider { token: string; useClass?: new (...args: any[]) => any; useValue?: any; useFactory?: (...args: any[]) => any; scope?: Scope; dependencies?: string[]; injectContainer?: boolean; } export interface Module { providers: Provider[]; imports?: Module[]; exports?: string[]; } export interface DependencyContext { name: string; type: 'service' | 'repository' | 'usecase' | 'controller' | 'middleware'; path: string; dependencies: string[]; scope: Scope; exports?: string[]; }