/** * 依赖注入容器 * 提供依赖注入和生命周期管理 */ import type { Class } from './utils.js'; export type Token = string | symbol | Class; export type Factory = (container: Container) => T; export type Provider = Class | Factory; export interface ServiceOptions { /** 是否单例 */ singleton?: boolean; /** 依赖的token列表 */ deps?: Token[]; } /** * 依赖注入容器 */ export declare class Container { private services; /** * 注册服务 */ register(token: Token, provider: Provider, options?: ServiceOptions): void; /** * 注册单例服务 */ registerSingleton(token: Token, provider: Provider, deps?: Token[]): void; /** * 注册瞬态服务(每次获取都创建新实例) */ registerTransient(token: Token, provider: Provider, deps?: Token[]): void; /** * 获取服务实例 */ get(token: Token): T; /** * 检查服务是否已注册 */ has(token: Token): boolean; /** * 解析依赖 */ private resolveDependencies; /** * 判断是否为类 */ private isClass; /** * 清除所有服务 */ clear(): void; /** * 移除服务 */ remove(token: Token): boolean; } /** * 全局容器实例 */ export declare const container: Container;