/**
 * Simple dependency injection container
 */
export declare class DIContainer {
    private readonly services;
    private readonly factories;
    private readonly asyncFactories;
    /**
     * Register a service instance
     * @param name Service name
     * @param instance Service instance
     */
    register<T>(name: string, instance: T): void;
    /**
     * Register a factory function to create a service
     * @param name Service name
     * @param factory Factory function
     */
    registerFactory<T>(name: string, factory: () => T): void;
    registerFactory<T>(name: string, factory: () => Promise<T>): void;
    /**
     * Get a service by name
     * @param name Service name
     * @returns Service instance or Promise of service instance
     */
    get<T>(name: string): T | Promise<T>;
    /**
     * Check if a service is registered
     * @param name Service name
     * @returns True if service is registered
     */
    has(name: string): boolean;
    /**
     * Remove a service
     * @param name Service name
     */
    remove(name: string): void;
    /**
     * Clear all services
     */
    clear(): void;
}
//# sourceMappingURL=DIContainer.d.ts.map