/** * Dependency injection container for RecCall core engine */ import 'reflect-metadata'; import type { ICoreEngine } from './interfaces.js'; import { ContextEngine } from './context-engine.js'; export declare const TOKENS: { readonly CORE_ENGINE: "ICoreEngine"; readonly CONTEXT_STORAGE: "IContextStorage"; readonly REPOSITORY_CLIENT: "IRepositoryClient"; readonly CACHE_MANAGER: "ICacheManager"; readonly RECIPE_VALIDATOR: "IRecipeValidator"; readonly CONTEXT_ENGINE: "ContextEngine"; readonly CONTEXT_STORAGE_NEW: "IContextStorageNew"; }; /** * Dependency injection container setup */ export declare class DIContainer { private static instance; private initialized; private constructor(); static getInstance(): DIContainer; /** * Initialize the container with all dependencies */ initialize(): Promise; /** * Get a service from the container */ get(token: string): T; /** * Register a custom service */ register(token: string, implementation: new (...args: any[]) => T): void; /** * Register a custom instance */ registerInstance(token: string, instance: T): void; /** * Clear all registrations */ clear(): void; /** * Check if container is initialized */ isInitialized(): boolean; } export declare const diContainer: DIContainer; /** * Decorator for dependency injection */ export declare function Injectable(): any>(target: T) => void; /** * Decorator for injecting dependencies */ export declare function Inject(token: string): (target: any, propertyKey: string | symbol | undefined, parameterIndex: number) => any; /** * Factory function to create core engine with DI */ export declare function createCoreEngine(): Promise; /** * Factory function to create CLI adapter with DI */ export declare function createCLIAdapter(): Promise; /** * Factory function to create MCP adapter with DI */ export declare function createMCPAdapter(): Promise; /** * Factory function to create VSCode adapter with DI */ export declare function createVSCodeAdapter(): Promise; /** * Factory function to create Context Engine with DI */ export declare function createContextEngine(): Promise; //# sourceMappingURL=container.d.ts.map