/**
 * Provider registry for image generation models.
 *
 * To add a new provider:
 *   1. Create src/commands/generate/providers/<provider>.ts
 *   2. Import { registerProvider } from './store' and call it
 *   3. Add an import for your file at the bottom of this file
 */
// Providers must be imported before any registry query.
// esbuild inlines modules — explicit imports here guarantee
// registerProvider() calls happen before getProvider()/allModels().
import "./seaart.js";
import "./volces.js";
import "./alibaba.js";
import "./nano.js";
import "./vidu.js";
import "./kling.js";
import "./pixverse.js";
import "./audio.js";
import "./volces-video.js";
import "./volces-3d.js";
import "./tencent-image.js";
import "./tencent-3d.js";
import "./tencent-video.js";
import "./tripo3d.js";
export { registerProvider } from "./store.js";
import { _registry } from "./store.js";
/** Look up the provider for a given model ID. Returns undefined if unknown. */
export function getProvider(model) {
    return _registry.get(model);
}
/** All registered model IDs in registration order */
export function allModels() {
    return Array.from(_registry.keys());
}
/** All registered model IDs filtered by category */
export function modelsByCategory(category) {
    const out = [];
    for (const [model, def] of _registry) {
        if (def.category === category)
            out.push(model);
    }
    return out;
}
/** All registered model IDs grouped by provider name, optionally filtered by category */
export function modelsByProvider(category) {
    const out = new Map();
    for (const [model, def] of _registry) {
        if (category && def.category !== category)
            continue;
        const list = out.get(def.provider) ?? [];
        list.push(model);
        out.set(def.provider, list);
    }
    return out;
}
//# sourceMappingURL=registry.js.map