import type { ModelsDevPayload } from '../types/models-registry.js'; /** * Deep-merge a curated `overlay` payload on top of a `base` payload (both in * the models.dev `api.json` shape). The overlay always wins: it can add * providers/models the base lacks and override fields the base gets wrong. * * NEW: The overlay also supports two magic keys for removal: * * `_removeProviders` (string[]) — provider ids to DELETE from the result. * `_removeModels` (Record) — per-provider model ids to * delete from that provider's model list. * * Removals are applied AFTER the merge pass so the overlay can add and then * selectively strip away unwanted entries from the base catalog. * * Precedence rules: * - Provider present in both → scalar fields (`name`, `npm`, `api`, `env`, * `doc`) come from the overlay when set; `models` maps merge by model id. * - Provider only in the overlay → added wholesale. * - Model present in both → overlay model fields override base model fields * (`{ ...base, ...overlay }`), with the nested `limit` / `cost` / * `modalities` objects merged one level deeper so an overlay can fix just * `limit.context` without restating the rest of the model. * - Model only in the overlay → added. * * Pure: never mutates its inputs. */ export declare function mergeModelsPayload(base: ModelsDevPayload, overlay: ModelsDevPayload): ModelsDevPayload; //# sourceMappingURL=merge-models-payload.d.ts.map