/** * Dependency Injection Container * * Provides centralized dependency management for testability and flexibility. * Eliminates global singletons and enables easy mocking for tests. */ import { GraphQLClient } from 'graphql-request'; import { Config } from '../config.js'; import { CacheService } from './cache-adapter.js'; import { CacheInvalidator } from './cache-invalidation.js'; /** * Service container interface * All application dependencies are accessed through this container */ export interface ServiceContainer { /** GraphQL client for backend communication */ graphqlClient: GraphQLClient; /** Cache service for data caching */ cache: CacheService; /** Cache invalidation coordinator */ cacheInvalidator: CacheInvalidator; /** Application configuration */ config: Config; } /** * Create production container with real implementations */ export declare function createContainer(graphqlClient: GraphQLClient, cache: CacheService, config: Config): ServiceContainer; /** * Create test container with mock implementations * Useful for unit testing without real dependencies */ export declare function createTestContainer(overrides?: Partial): ServiceContainer; //# sourceMappingURL=container.d.ts.map