import type { ModelV2Info, ProviderV2Info } from "@opencode-ai/sdk/v2/types" import type { Hooks } from "./registration.js" export interface CatalogProviderRecord { readonly provider: ProviderV2Info readonly models: ReadonlyMap } export interface CatalogDraft { readonly provider: { list(): readonly CatalogProviderRecord[] get(providerID: string): CatalogProviderRecord | undefined update(providerID: string, update: (provider: ProviderV2Info) => void): void remove(providerID: string): void } readonly model: { get(providerID: string, modelID: string): ModelV2Info | undefined update(providerID: string, modelID: string, update: (model: ModelV2Info) => void): void remove(providerID: string, modelID: string): void readonly default: { get(): { providerID: string; modelID: string } | undefined set(providerID: string, modelID: string): void } } } export type CatalogHooks = Hooks<{ transform: CatalogDraft }>