/** * Core Dependencies Configuration * * Similar to @plyaz/api's setGlobalConfig pattern. * Backend services are registered here by entry points, not imported directly. * * IMPORTANT: This file must NOT import from backend service files (DbService, CacheService, etc.) * as that would cause the bundler to include backend dependencies in the frontend bundle. * * @example * ```typescript * // entry-backend.ts * import { setCoreDependencies } from './config/dependencies'; * import { DbService } from './services/DbService'; * import { CacheService } from './services/CacheService'; * * setCoreDependencies({ * DbService, * CacheService, * StorageService, * NotificationService, * }); * * // entry-frontend.ts * // Don't call setCoreDependencies - no backend deps loaded * ``` */ import type { CoreDbServiceStatic, CoreCacheServiceStatic, CoreStorageServiceStatic, CoreNotificationServiceStatic, CoreServerErrorMiddlewareStatic } from '@plyaz/types/core'; export interface CoreDependencies { DbService?: CoreDbServiceStatic; CacheService?: CoreCacheServiceStatic; StorageService?: CoreStorageServiceStatic; NotificationService?: CoreNotificationServiceStatic; ServerErrorMiddleware?: CoreServerErrorMiddlewareStatic; } /** * Set core dependencies (called by entry points) * * @example * ```typescript * // entry-backend.ts * import { DbService } from './services/DbService'; * import { CacheService } from './services/CacheService'; * * setCoreDependencies({ * DbService, * CacheService, * }); * ``` */ export declare function setCoreDependencies(deps: CoreDependencies): void; /** * Get core dependencies */ export declare function getCoreDependencies(): CoreDependencies; /** * Check if a dependency is available */ export declare function hasCoreDependency(key: keyof CoreDependencies): boolean; /** * Get a specific dependency */ export declare function getCoreDependency(key: K): CoreDependencies[K] | undefined; /** * Clear all dependencies (useful for testing) */ export declare function clearCoreDependencies(): void; //# sourceMappingURL=dependencies.d.ts.map