import type { ModelV2Info, ProviderV2Info } from "@kilocode/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; }>;