import type { StandardSchemaV1 } from "../standard-schema/index.ts"; import type { BodyOptions } from "./body.ts"; import type { OpenApiRouteOptions, RouteDeclaration, RouteMetadata } from "./routeDeclaration.ts"; import type { RequestHeadersSchema, RequestParamsSchema, RequestQuerySchema } from "./request.ts"; import type { ResponseOptions } from "./response.ts"; import type { RootRouteBuilder } from "./routeBuilder.types.ts"; type RouteBuilderState = Partial; /** Immutable runtime implementation used by every route-builder stage. */ export declare class RouteBuilder { readonly "~restrpc": RouteBuilderState; constructor(state?: RouteBuilderState); get(path: string): RouteBuilder; post(path: string): RouteBuilder; put(path: string): RouteBuilder; patch(path: string): RouteBuilder; delete(path: string): RouteBuilder; body(schema: StandardSchemaV1, options?: BodyOptions): RouteBuilder; input(schema: StandardSchemaV1, options?: BodyOptions): RouteBuilder; headers(schema: RequestHeadersSchema): RouteBuilder; query(schema: RequestQuerySchema): RouteBuilder; params(schema: RequestParamsSchema): RouteBuilder; metadata(metadata: RouteMetadata): RouteBuilder; openAPI(openApi: OpenApiRouteOptions): RouteBuilder; response(status: number, schema?: StandardSchemaV1, options?: ResponseOptions): RouteBuilder; output(schema: StandardSchemaV1, options?: BodyOptions): RouteBuilder; streamOutput(schema: StandardSchemaV1): RouteBuilder; streamResponse(status: number, schema: StandardSchemaV1): RouteBuilder; } /** * Entry point for declaring contract-first routes with independent input and output forms. * * @remarks Every builder method returns a new route value, so partially built * routes can be reused safely across declarations. * * @see {@link https://rest-rpc.dev/docs/route-builder} */ export declare const route: RootRouteBuilder; export {};