/** * @module koi/model-fallback-sticky * * Session-sticky model fallback memory. Once a primary model fails and a * fallback answers, the switch must not replay on every message — each turn * would re-pay the primary's failure latency and re-announce the switch. This * map remembers, per requested primary ("provider/model" key), which candidate * answered last; `runWithModelFallback` starts THERE on subsequent runs. * * Scope is the gateway process: cleared by a manual model switch (the person * re-choosing a model re-arms the primary) and naturally reset on restart. * Dependency-free on purpose — imported from both the koi runner side and the * session model-override side without creating a cycle. */ export declare function getStickyModelFallback(primaryKey: string): string | undefined; export declare function setStickyModelFallback(primaryKey: string, candidateKey: string): void; export declare function deleteStickyModelFallback(primaryKey: string): void; /** A manual model switch (or restart) re-arms the primary everywhere. */ export declare function clearStickyModelFallbacks(): void;