import type { DataSource } from "./types.js"; const collectors = new Map) => DataSource>(); export function registerCollector( name: string, factory: (config?: Record) => DataSource ): void { collectors.set(name, factory); } export function getCollector( name: string, config?: Record ): DataSource { const factory = collectors.get(name); if (!factory) { throw new Error( `Unknown collector: ${name}. Available: ${[...collectors.keys()].join(", ")}` ); } return factory(config); } export function listCollectorNames(): string[] { return [...collectors.keys()]; }