export type Scope = 'singleton' | 'transient' export type Fallback = (() => any) | any export type ClassConstructor = new (...args: any[]) => T export interface ParamInfo { index: number type?: any optional?: boolean fallback?: Fallback } export interface ServiceMetadata { constructor: ClassConstructor scope: Scope autorun: boolean params: ParamInfo[] decoratorType: string // ← NUEVO: Tipo de decorador } export interface ServiceStore { services: Map decoratorStores: Map> // ← NUEVO: Stores por decorador } export interface LoaderOptions { rootDir: string extraDirs?: string[] ignorePatterns?: string[] decoratorPatterns?: string[] } export interface BootstrapOptions { rootDir?: string extraDirs?: string[] logger?: { debug?: (msg: string) => void info?: (msg: string) => void warn?: (msg: string) => void error?: (msg: string) => void } }