import { RpgFactoryProvider } from '@rpgjs/common'; import { RpgServer } from './RpgServer'; /** * Type for server modules that can be either: * - An object implementing RpgServer interface * - A class decorated with @RpgModule decorator */ export type RpgServerModule = RpgServer | (new () => any); /** * Provides server modules configuration to Angular Dependency Injection * * This function accepts an array of server modules that can be either: * - Objects implementing the RpgServer interface * - Classes decorated with the @RpgModule decorator (which will be instantiated) * * @param modules - Array of server modules (objects or classes) * @returns FactoryProvider configuration for Angular DI * @example * ```ts * // Using an object * provideServerModules([ * { * player: { * onConnected(player) { * console.log('Player connected') * } * } * } * ]) * * // Using a decorated class * @RpgModule({ * engine: { * onStart(server) { * console.log('Server started') * } * } * }) * class MyServerModule {} * * provideServerModules([MyServerModule]) * ``` */ export declare function provideServerModules(modules: RpgServerModule[]): RpgFactoryProvider;