import type { ContextBrainSupplier } from 'rhachet'; import { BrainAtom } from 'rhachet/brains'; import { type BrainSuppliesFireworks } from './BrainAtom.config'; import type { BrainAtomSlugFireworks } from './slug/AtomSlug'; export type { BrainSuppliesFireworks } from './BrainAtom.config'; export type { BrainAtomSlugFireworks } from './slug/AtomSlug'; /** * .what = typed context for fireworks brain supplier * .why = enables type-safe credential injection via genContextBrainSupplier('fireworks', ...) */ export type ContextBrainSupplierFireworks = ContextBrainSupplier<'fireworks', BrainSuppliesFireworks>; /** * .what = factory to generate fireworks ai brain atom instances * .why = enables model variant selection via slug * * .note = fireworks ai api is openai-compatible with baseURL override * * .note = the slug a caller names is RESOLVED before lookup, so a retired slug * and a versionless generic both reach a live model with no edit on * the caller's side (`asPinnedAtomSlug`). * * .example * genBrainAtom({ slug: 'fireworks/deepseek/flash' }) // bare versionless, never churns * genBrainAtom({ slug: 'fireworks/deepseek/flash/latest' }) // versionless, never churns * genBrainAtom({ slug: 'fireworks/deepseek/flash/v4.1' }) // pinned, byte-stable * genBrainAtom({ slug: 'fireworks/deepseek/flash/v4' }) // retired -> routed to v4.1-flash * genBrainAtom({ slug: 'fireworks/deepseek/v4-flash' }) // legacy -> flash/v4 -> routed to v4.1-flash * * .note = every atom carries the name it was built from as `atom.slug`, so a * consumer who selects by that name finds it, and reaches the pin. */ export declare const genBrainAtom: (input: { slug: BrainAtomSlugFireworks; }) => BrainAtom;