import type { RouteKitPlatform } from "@velum-labs/routekit-runtime/effect"; import { Effect } from "effect"; import type { Backend } from "../providers/backend.js"; import type { EndpointAuthenticator, EndpointContext, EndpointObserver } from "./endpoint-module.js"; import { GatewayEndpoint } from "./endpoint-module.js"; export type ModelsOperation = "catalog" | "cursor-catalog" | "retrieve"; type CodexCatalogRelay = Readonly<{ mergedCatalog(headers: EndpointContext["headers"], search: string): Effect.Effect<{ models: Array>; etag?: string; } | undefined, Error, RouteKitPlatform>; mergeDataIds(data: Array<{ id: string; } & Record>, models: readonly Record[]): Array<{ id: string; } & Record>; }>; export type ModelsEndpointDependencies = Readonly<{ backend: Backend; anthropicRelayAvailable: boolean; anthropicCatalog?(context: EndpointContext, configured: Response): Effect.Effect; codexCatalog?: CodexCatalogRelay; includeCodexNativeModels: boolean; configuredAnthropicCatalog(): Response; pickerModels(configured: Array<{ id: string; } & Record>, native: readonly Record[], includeUnroutedNative: boolean): Record[]; resolveRetrieval(id: string): Readonly<{ status: "ok"; displayName: string; }> | Readonly<{ status: "invalid"; message: string; }> | Readonly<{ status: "missing"; }>; }>; export declare class ModelsEndpoint extends GatewayEndpoint { constructor(authenticate: EndpointAuthenticator, dependencies: ModelsEndpointDependencies, observe?: EndpointObserver); matches(method: string, path: string): boolean; protected decodeOperation(context: EndpointContext): ModelsOperation; } export {};