import type { BrainAtomSlugFireworksPinned } from '../BrainAtom.config'; import type { BrainAtomSlugFireworks } from './AtomSlug'; /** * .what = casts any accepted slug name onto the pinned slug that serves it * .why = lets a consumer name a legacy, versionless, or retired slug and still * reach a live model, so a provider's churn costs them no edit * * .the two steps: * 1. an ALIAS — legacy or versionless — is read from its map * 2. a ROUTED retirement is followed to its successor * * .note = an AMBIGUOUS retirement is NOT re-aimed here. it comes back * unchanged, because it still serves — the probe on 2026-09-22 * confirmed every retired id answers. to throw now would break a * caller whose model works, which is the exact churn this package * exists to prevent. the named error is raised at the call site * instead, once the id 404s (`getOneRetirementError`). * * .example * asPinnedAtomSlug({ slug: 'fireworks/deepseek/v4.1-flash' }) * // 'fireworks/deepseek/flash/v4.1' (legacy name) * asPinnedAtomSlug({ slug: 'fireworks/deepseek/flash/latest' }) * // 'fireworks/deepseek/flash/v4.1' (versionless generic) * asPinnedAtomSlug({ slug: 'fireworks/deepseek/flash/v4' }) * // 'fireworks/deepseek/flash/v4.1' (retired, routed) * asPinnedAtomSlug({ slug: 'fireworks/kimi/pro/k2.6' }) * // 'fireworks/kimi/pro/k2.6' (retired, ambiguous, still serves) */ export declare const asPinnedAtomSlug: (input: { slug: BrainAtomSlugFireworks; }) => BrainAtomSlugFireworksPinned;