import type { RequestAttribution } from "@velum-labs/routekit-contracts"; import type { ResponsesRequest } from "../adapters/responses-wire.js"; import type { WireRejection } from "../adapters/validate.js"; import { type Backend, type BackendRequest, type BackendRequestOptions } from "../providers/backend.js"; import { type CompositionalRoutingRuntime } from "../routing/eval-policy.js"; import type { EndpointAuthenticator, EndpointContext, EndpointObserver } from "./endpoint-module.js"; import { GatewayEndpoint } from "./endpoint-module.js"; export type ResponsesOperation = "responses"; type ResponsesRelay = Readonly<{ shouldRelay(headers: EndpointContext["headers"], model: string | undefined, servesLocally: (model: string) => boolean): boolean; relay(headers: EndpointContext["headers"], body: ResponsesRequest, signal?: AbortSignal, options?: Pick): BackendRequest; }>; export type ResponsesEndpointDependencies = Readonly<{ backend: Backend; compositionalRouting?: CompositionalRoutingRuntime; providerRelay?: ResponsesRelay; clientRelay?: ResponsesRelay; rejectInvalid(context: EndpointContext, rejection: WireRejection | undefined): boolean; attribution(requested: string | undefined, nativeProvider?: "codex"): Partial; }>; export declare class ResponsesEndpoint extends GatewayEndpoint { constructor(authenticate: EndpointAuthenticator, dependencies: ResponsesEndpointDependencies, observe?: EndpointObserver); matches(method: string, path: string): boolean; protected decodeOperation(_context: EndpointContext): ResponsesOperation; } export {};