/**
 * ServiceContainer - Dependency Injection Container
 * Manages service registration and resolution with proven dependency injection patterns
 */
type ServiceFactory<T = unknown> = () => T;
export interface IServiceContainer {
    bind<T>(key: string, factory: ServiceFactory<T>): void;
    singleton<T>(key: string, factoryOrInstance: ServiceFactory<T> | T): void;
    resolve<T = unknown>(key: string): T;
    has(key: string): boolean;
    get<T = unknown>(key: string): T;
    flush(): void;
}
/**
 * ServiceContainer - Dependency Injection Container
 * Refactored to Functional Object pattern
 */
export declare const ServiceContainer: Readonly<{
    /**
     * Create a new service container instance
     */
    create(): IServiceContainer;
}>;
export default ServiceContainer;
//# sourceMappingURL=ServiceContainer.d.ts.map