export interface LlmRelayEndpoint { /** The site-main catalogue row this endpoint serves. */ providerId: string; /** A bare https origin. */ origin: string; /** The exact request path. Matching is exact, never by prefix. */ path: string; /** The row's NON-CHAT paths (LLM_AND_AGENTS_SPEC §4.4; embeddings first — e.g. * `/v1/embeddings`), vetted exactly like `path`. Absent on a chat-only row. */ paths?: readonly string[]; } export declare const LLM_RELAY_ENDPOINTS: readonly LlmRelayEndpoint[]; /** Every vetted path — chat completions and the non-chat kinds (§4.4) alike — is a POST * JSON call, so the relay carries exactly one method for them. */ export declare const LLM_RELAY_METHOD = "POST"; /** * The vetted endpoint `url` names, or `null`. * * The whole normalized URL must equal the row's: OpenCode Go and Zen share an origin and differ * only by path, so a prefix or origin match would admit more than any row names. Comparing the * full `href` also refuses userinfo, a query and a fragment — even an empty `?` or `#`, which * the `search` and `hash` fields report as "" — since none is part of a vetted call. */ export declare function llmRelayEndpointFor(url: string, method: string): LlmRelayEndpoint | null;