import type { Brand } from "../Brand.ts"; import * as Context from "../Context.ts"; import type { Effect } from "../Effect.ts"; import type * as Sse from "../encoding/Sse.ts"; import { type HttpMethod } from "../http/HttpMethod.ts"; import * as HttpRouter from "../http/HttpRouter.ts"; import type { HttpServerRequest } from "../http/HttpServerRequest.ts"; import type { HttpServerResponse } from "../http/HttpServerResponse.ts"; import type * as Multipart from "../http/Multipart.ts"; import { type Pipeable } from "../Pipeable.ts"; import * as Schema from "../Schema.ts"; import type * as Socket from "../socket/Socket.ts"; import type * as Stream from "../Stream.ts"; import type { Simplify } from "../Struct.ts"; import type * as Types from "../Types.ts"; import type * as HttpApiError from "./HttpApiError.ts"; import type * as HttpApiGroup from "./HttpApiGroup.ts"; import type * as HttpApiMiddleware from "./HttpApiMiddleware.ts"; import * as HttpApiSchema from "./HttpApiSchema.ts"; declare const TypeId = "~effect/http-api/HttpApiEndpoint"; /** * Returns `true` when a value is an `HttpApiEndpoint`, narrowing the value to the * endpoint interface. * * @stability unstable * @category guards * @since 4.0.0 */ export declare const isHttpApiEndpoint: (u: unknown) => u is Top; type SuccessType = S extends HttpApiSchema.WithHeaders ? HttpApiSchema.withHeaders, _Headers["Type"]> : S extends HttpApiSchema.StreamSse ? Stream.Stream<_Value, _Error["Type"], never> : S extends HttpApiSchema.StreamUint8Array ? Stream.Stream : S extends HttpApiSchema.StreamNdjson ? Stream.Stream<_S["Type"], unknown, never> : S extends HttpApiSchema.Upgrade ? void : S extends Schema.Constraint ? S["Type"] : never; type SuccessEncodingServices = S extends HttpApiSchema.StreamSse ? _Events["EncodingServices"] | _Error["EncodingServices"] : S extends HttpApiSchema.StreamUint8Array ? never : S extends HttpApiSchema.StreamNdjson ? _S["EncodingServices"] : S extends Schema.Constraint ? S["EncodingServices"] : never; type SuccessDecodingServices = S extends HttpApiSchema.StreamSse ? _Events["DecodingServices"] | _Error["DecodingServices"] : S extends HttpApiSchema.StreamUint8Array ? never : S extends HttpApiSchema.StreamNdjson ? _S["DecodingServices"] : S extends Schema.Constraint ? S["DecodingServices"] : never; type UnwrapReadonlyArray = S extends ReadonlyArray ? A : S; type ExtractBufferedSuccess = Exclude, Schema.Top>, HttpApiSchema.StreamSchema | HttpApiSchema.Upgrade | HttpApiSchema.WithHeaders>; type ExtractStreamSuccess = UnwrapReadonlyArray extends infer Success ? Success extends HttpApiSchema.StreamSchema ? Success : never : never; type ExtractUpgradeSuccess = Extract, HttpApiSchema.Upgrade>; type UpgradeSocket = [Extract] extends [never] ? {} : { readonly socket: Socket.Socket; }; type ExtractWithHeadersSuccess = UnwrapReadonlyArray extends infer Success ? Success extends HttpApiSchema.WithHeaders ? HttpApiSchema.WithHeaders<_Inner extends HttpApiSchema.StreamSchema ? _Inner : Schema.toCodecJson<_Inner>, Schema.toCodecStringTree<_Headers>> : never : never; type ToSuccessCodec = [ExtractBufferedSuccess] extends [never] ? ExtractStreamSuccess | ExtractUpgradeSuccess | ExtractWithHeadersSuccess : Schema.toCodecJson> | ExtractStreamSuccess | ExtractUpgradeSuccess | ExtractWithHeadersSuccess; type ToJsonCodec = [S] extends [never] ? never : [S] extends [Schema.Constraint] ? Schema.toCodecJson : never; type ToStringTreeCodec = [S] extends [never] ? never : [S] extends [Schema.Struct.Fields] ? Schema.toCodecStringTree> : [S] extends [Schema.Constraint] ? Schema.toCodecStringTree : never; type ToPayloadCodec = [Exclude] extends [never] ? Extract : ToJsonCodec> | Extract; type RequestPayload = Payload extends HttpApiSchema.StreamUint8Array ? Stream.Stream : Payload extends HttpApiSchema.StreamNdjson ? Stream.Stream<_S["Type"], HttpApiError.HttpApiSchemaError | HttpApiError.HttpApiPayloadTooLarge> : Payload extends Schema.Top ? BufferedRequestPayload : never; type BufferedRequestPayload = PayloadType extends Brand ? Stream.Stream : Simplify; type PayloadError = Payload extends HttpApiSchema.StreamUint8Array ? HttpApiError.HttpApiPayloadTooLarge : Payload extends HttpApiSchema.StreamNdjson ? HttpApiError.HttpApiSchemaError | HttpApiError.HttpApiPayloadTooLarge : never; type RequestFromParts = UpgradeSocket & ([ParamsType] extends [never] ? {} : { readonly params: Simplify; }) & ([QueryType] extends [never] ? {} : { readonly query: Simplify; }) & ([Payload] extends [never] ? {} : { readonly payload: RequestPayload; }) & ([HeadersType] extends [never] ? {} : { readonly headers: Simplify; }) & { readonly request: HttpServerRequest; readonly endpoint: Endpoint; readonly group: HttpApiGroup.Top; }; type RequestRawFromParts = UpgradeSocket & ([ParamsType] extends [never] ? {} : { readonly params: Simplify; }) & ([QueryType] extends [never] ? {} : { readonly query: Simplify; }) & ([HeadersType] extends [never] ? {} : { readonly headers: Simplify; }) & { readonly request: HttpServerRequest; readonly endpoint: Endpoint; readonly group: HttpApiGroup.Top; }; /** * Maps normalized media types to a payload encoding strategy and one or more * schemas. Each schema retains its declared content type in its encoding annotation. * * **Details** * * A streaming payload (`HttpApiSchema.StreamUint8Array` or * `HttpApiSchema.StreamNdjson`) has a `Stream` encoding and is the only schema * for its media type. * * @stability unstable * @category models * @since 4.0.0 */ export type PayloadMap = ReadonlyMap]; } | { readonly encoding: { readonly _tag: "Stream"; readonly contentType: string; }; readonly schemas: readonly [HttpApiSchema.StreamUint8Array | HttpApiSchema.StreamNdjson]; }>; /** * Represents an API endpoint. An API endpoint is mapped to a single route on * the underlying `HttpRouter`. * * @stability unstable * @category models * @since 4.0.0 */ export interface HttpApiEndpoint extends Pipeable { new (_: never): {}; readonly [TypeId]: typeof TypeId; readonly "~Params": Params; readonly "~Query": Query; readonly "~Headers": Headers; readonly "~Payload": Payload; readonly "~Success": Success; readonly "~Error": Error; readonly "~Middleware": Middleware; readonly "~MiddlewareServices": MiddlewareServices; readonly "~Request": RequestFromParts; readonly "~RequestRaw": RequestRawFromParts; readonly identifier: Identifier; readonly path: Path; readonly method: Method; readonly params: Schema.Top | undefined; readonly query: Schema.Top | undefined; readonly headers: Schema.Top | undefined; readonly payload: PayloadMap; readonly success: ReadonlySet; readonly error: ReadonlySet; readonly annotations: Context.Context; readonly middlewares: ReadonlySet>; readonly disableCodecs: boolean; /** * Add a prefix to the path of the endpoint. */ prefix(prefix: Prefix): HttpApiEndpoint; /** * Add an `HttpApiMiddleware` to the endpoint. */ middleware(middleware: Context.Key): HttpApiEndpoint>; /** * Add an annotation on the endpoint. */ annotate(key: Context.Key, value: Types.NoInfer): HttpApiEndpoint; /** * Merge the annotations of the endpoint with the provided context. */ annotateMerge(annotations: Context.Context): HttpApiEndpoint; } /** * A widened `HttpApiEndpoint` type used when the concrete method, path, schemas, * and middleware types are not needed. * * @stability unstable * @category models * @since 4.0.0 */ export interface Constraint { readonly [TypeId]: typeof TypeId; readonly identifier: string; readonly ["~Success"]: Schema.Constraint; readonly ["~Error"]: Schema.Constraint; readonly ["~Request"]: unknown; readonly ["~RequestRaw"]: unknown; } /** * A widened endpoint type that preserves request and middleware pipeline phantom fields. * * @stability unstable * @category models * @since 4.0.0 */ export interface ConstraintRequest extends Constraint { readonly ["~Params"]: Schema.Constraint; readonly ["~Query"]: Schema.Constraint; readonly ["~Payload"]: Schema.Constraint; readonly ["~Headers"]: Schema.Constraint; readonly ["~Middleware"]: unknown; } /** * A widened endpoint type that preserves concrete runtime properties such as * method, path, schemas, annotations, and middleware sets. * * @stability unstable * @category models * @since 4.0.0 */ export interface Top extends HttpApiEndpoint { } /** * Extracts the endpoint identifier literal from an `HttpApiEndpoint`. * * @stability unstable * @category utility types * @since 4.0.0 */ export type Identifier = Endpoint extends Constraint ? Endpoint["identifier"] : never; /** * Extracts the success schema associated with an endpoint. * * @stability unstable * @category utility types * @since 4.0.0 */ export type Success = Endpoint extends Constraint ? Endpoint["~Success"] : never; /** * Extracts the error schema associated with an endpoint. * * @stability unstable * @category utility types * @since 4.0.0 */ export type Error = Endpoint extends Constraint ? Endpoint["~Error"] : never; /** * Extracts the schema used for an endpoint's path parameters. * * @stability unstable * @category utility types * @since 4.0.0 */ export type Params = Endpoint extends ConstraintRequest ? Endpoint["~Params"] : never; /** * Extracts the schema used for an endpoint's query parameters. * * @stability unstable * @category utility types * @since 4.0.0 */ export type Query = Endpoint extends ConstraintRequest ? Endpoint["~Query"] : never; /** * Extracts the schema used for an endpoint's request payload. * * @stability unstable * @category utility types * @since 4.0.0 */ export type Payload = Endpoint extends ConstraintRequest ? Endpoint["~Payload"] : never; /** * Extracts the schema used for an endpoint's request headers. * * @stability unstable * @category utility types * @since 4.0.0 */ export type Headers = Endpoint extends ConstraintRequest ? Endpoint["~Headers"] : never; /** * Extracts the middleware identifiers attached to an endpoint. * * @stability unstable * @category utility types * @since 4.0.0 */ export type Middleware = Endpoint extends { readonly "~Middleware": infer M; } ? M : never; /** * Computes the services provided by the middleware attached to an endpoint. * * @stability unstable * @category utility types * @since 4.0.0 */ export type MiddlewareProvides = HttpApiMiddleware.Provides>; /** * Computes the client-side middleware services required by an endpoint. * * @stability unstable * @category utility types * @since 4.0.0 */ export type MiddlewareClient = HttpApiMiddleware.MiddlewareClient>; /** * Computes the error types that can be produced by the middleware attached to an * endpoint. * * @stability unstable * @category utility types * @since 4.0.0 */ export type MiddlewareError = HttpApiMiddleware.Error>; /** * Computes the full error value union for an endpoint, including the endpoint * error schema's type and errors introduced by middleware. * * @stability unstable * @category utility types * @since 4.0.0 */ export type Errors = Endpoint extends ConstraintRequest ? Endpoint["~Error"]["Type"] | HttpApiMiddleware.Error : never; /** * Computes the services required to encode an endpoint's error responses, * including services required by middleware error encoders. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ErrorServicesEncode = Endpoint extends ConstraintRequest ? Endpoint["~Error"]["EncodingServices"] | HttpApiMiddleware.ErrorServicesEncode : never; /** * Builds the decoded request shape passed to a normal endpoint handler, including * available params, query, payload, headers, the raw request, endpoint, and group. * Multipart stream payloads are exposed as streams of parts. * * @stability unstable * @category utility types * @since 4.0.0 */ export type Request = Endpoint extends ConstraintRequest ? Endpoint["~Request"] : {}; /** * Builds the request shape passed to a raw endpoint handler, including decoded * params, query, and headers plus the raw request, endpoint, and group, while * leaving payload handling to the raw request. * * @stability unstable * @category utility types * @since 4.0.0 */ export type RequestRaw = Endpoint extends ConstraintRequest ? Endpoint["~RequestRaw"] : {}; /** * Builds the request object accepted by a generated client method, including the * params, query, headers, and payload required by the endpoint, plus optional * response mode and SSE decoding options. Multipart payloads are supplied as * `FormData`, and streaming payloads as a `Stream` that requires `PayloadR`. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ClientRequest = (([Params["Type"]] extends [never] ? {} : { readonly params: Params["Type"]; }) & ([Query["Type"]] extends [never] ? {} : { readonly query: Query["Type"]; }) & ([Headers["Type"]] extends [never] ? {} : { readonly headers: Headers["Type"]; }) & ([Payload["Type"]] extends [never] ? {} : Payload["Type"] extends infer P ? P extends Brand | Brand ? { readonly payload: FormData; } : { readonly payload: ClientPayload; } : { readonly payload: ClientPayload; })) extends infer Req ? keyof Req extends never ? (void | { readonly responseMode?: ResponseMode; readonly sseOptions?: Sse.DecodeOptions | undefined; }) : Req & { readonly responseMode?: ResponseMode; readonly sseOptions?: Sse.DecodeOptions | undefined; } : void; type ClientPayload = Payload extends HttpApiSchema.StreamUint8Array ? Stream.Stream : Payload extends HttpApiSchema.StreamNdjson ? Stream.Stream : Payload["Type"]; /** * Controls what a generated client method returns: the decoded success value, * the decoded value paired with the raw response, or only the raw response. * * @stability unstable * @category models * @since 4.0.0 */ export type ClientResponseMode = "decoded-only" | "decoded-and-response" | "response-only"; /** * Computes the services required on the server to decode endpoint inputs and * encode endpoint success, error, and middleware error responses. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ServerServices = Endpoint extends ConstraintRequest ? Endpoint["~Params"]["DecodingServices"] | Endpoint["~Query"]["DecodingServices"] | Endpoint["~Payload"]["DecodingServices"] | Endpoint["~Headers"]["DecodingServices"] | SuccessEncodingServices | Endpoint["~Error"]["EncodingServices"] | HttpApiMiddleware.ErrorServicesEncode : never; /** * Computes the services required on the client to encode endpoint requests and * decode endpoint success or error responses. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ClientServices = Endpoint extends ConstraintRequest ? Endpoint["~Params"]["EncodingServices"] | Endpoint["~Query"]["EncodingServices"] | Endpoint["~Payload"]["EncodingServices"] | Endpoint["~Headers"]["EncodingServices"] | SuccessDecodingServices | Endpoint["~Error"]["DecodingServices"] : never; /** * Extracts the additional services required by middleware applied to an endpoint. * * @stability unstable * @category utility types * @since 4.0.0 */ export type MiddlewareServices = Endpoint extends { readonly "~MiddlewareServices": infer R; } ? R : never; /** * Computes the services required to decode an endpoint's error responses, * including services required by middleware error decoders. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ErrorServicesDecode = Endpoint extends ConstraintRequest ? Endpoint["~Error"]["DecodingServices"] | HttpApiMiddleware.ErrorServicesDecode : never; /** * The normal server handler for an endpoint, accepting the decoded request shape * and returning either the endpoint success value or a custom `HttpServerResponse`. * * @stability unstable * @category utility types * @since 4.0.0 */ export type Handler = (request: Simplify) => Effect | HttpServerResponse, Endpoint["~Error"]["Type"] | PayloadError> | E, R>; /** * The raw server handler for an endpoint, receiving a request shape without a * decoded payload so the handler can read the raw `HttpServerRequest` directly. * * @stability unstable * @category utility types * @since 4.0.0 */ export type HandlerRaw = (request: Simplify) => Effect | HttpServerResponse, Endpoint["~Error"]["Type"] | E, R>; /** * Selects the endpoint with the specified identifier from a union of endpoints. * * @stability unstable * @category utility types * @since 4.0.0 */ export type WithIdentifier = Extract; /** * Removes endpoints with the specified identifier from a union of endpoints. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ExcludeIdentifier = Exclude; /** * Derives the normal handler type for the endpoint with the specified identifier * in an endpoint union. * * @stability unstable * @category utility types * @since 4.0.0 */ export type HandlerWithIdentifier = Handler, E, R>; /** * Derives the raw handler type for the endpoint with the specified identifier in * an endpoint union. * * @stability unstable * @category utility types * @since 4.0.0 */ export type HandlerRawWithIdentifier = HandlerRaw, E, R>; /** * Extracts the decoded success value type for the endpoint with the specified * identifier in an endpoint union. * * @stability unstable * @category utility types * @since 4.0.0 */ export type SuccessWithIdentifier = Success> extends infer S ? SuccessType : never; /** * Computes the full error value union for the endpoint with the specified * identifier in an endpoint union. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ErrorsWithIdentifier = Errors>; /** * Computes the server-side service requirements for the endpoint with the * specified identifier in an endpoint union. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ServerServicesWithIdentifier = ServerServices>; /** * Extracts the middleware identifiers for the endpoint with the specified * identifier in an endpoint union. * * @stability unstable * @category utility types * @since 4.0.0 */ export type MiddlewareWithIdentifier = Middleware>; /** * Extracts the middleware service requirements for the endpoint with the * specified identifier in an endpoint union. * * @stability unstable * @category utility types * @since 4.0.0 */ export type MiddlewareServicesWithIdentifier = MiddlewareServices>; /** * Removes services provided by the HTTP router and the selected endpoint's * middleware from a service requirement union. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ExcludeProvidedWithIdentifier = ExcludeProvided, R>; /** * Removes services provided by the HTTP router and endpoint middleware from a * service requirement union. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ExcludeProvided = Exclude>>; /** * Returns an endpoint type with the supplied path prefix prepended while * preserving the endpoint's schemas, method, errors, and middleware. * * @stability unstable * @category utility types * @since 4.0.0 */ export type AddPrefix = Endpoint extends HttpApiEndpoint ? HttpApiEndpoint<_Identifier, _Method, `${Prefix}${_Path}`, _Params, _Query, _Payload, _Headers, _Success, _Error, _M, _MR> : never; /** * Returns an endpoint type with additional middleware applied and the endpoint's * middleware service requirements updated accordingly. * * @stability unstable * @category utility types * @since 4.0.0 */ export type AddMiddleware = Endpoint extends HttpApiEndpoint ? HttpApiEndpoint<_Identifier, _Method, _Path, _Params, _Query, _Payload, _Headers, _Success, _Error, _M | M, HttpApiMiddleware.ApplyServices> : never; /** * Constraint for path parameter schemas: each parameter must encode to * `string | undefined`, or the schema must encode to a record of those values. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ParamsConstraint = Record> | Schema.Encoder, unknown>; /** * Constraint for header schemas: each header must encode to `string | undefined`, * or the schema must encode to a record of those values. * * @stability unstable * @category utility types * @since 4.0.0 */ export type HeadersConstraint = Record> | Schema.Encoder, unknown>; /** * Constraint for query schemas: each field must encode to `string`, an array of * strings, or `undefined`, or the schema must encode to a record of those values. * * @stability unstable * @category utility types * @since 4.0.0 */ export type QueryConstraint = Record | undefined, unknown>> | Schema.Encoder | undefined, unknown>; /** * Payload schema depends on the HTTP method: * - for no-body methods, payload is modeled as query params, so each field must * encode to `string | ReadonlyArray | undefined` and OpenAPI can expand * it into `in: query` parameters * - for body methods, payload may be any `Schema.Top` (or content-type keyed * schemas) and OpenAPI uses `requestBody` instead of `parameters`. This * includes one `HttpApiSchema.StreamUint8Array` or `HttpApiSchema.StreamNdjson`, * but not `HttpApiSchema.StreamSse`, which is response-only * * @stability unstable * @category utility types * @since 4.0.0 */ export type PayloadConstraint = Method extends HttpMethod.NoBody ? Record | undefined, unknown>> : PayloadSchema | ReadonlyArray; type PayloadSchema = Schema.Top & { readonly sseMode?: never; }; /** * Payload constraint used when automatic codecs are enabled: no-body methods * accept field records for query-style encoding, while body methods accept one or * more schemas. * * @stability unstable * @category utility types * @since 4.0.0 */ export type PayloadConstraintCodecs = Method extends HttpMethod.NoBody ? Record : PayloadSchema | ReadonlyArray; /** * Constraint for success response schemas, allowing either a single schema or a * readonly array of schemas. * * @stability unstable * @category utility types * @since 4.0.0 */ export type SuccessConstraint = Schema.Top | ReadonlyArray; /** * Constraint for error response schemas, allowing either a single schema or a * readonly array of schemas. * * @stability unstable * @category utility types * @since 4.0.0 */ export type ErrorConstraint = Schema.Top | ReadonlyArray; type ErrorSchema = S extends HttpApiSchema.WithHeaders ? Inner : S; type ErrorNoStream = [ Extract ? S[number] : S>, HttpApiSchema.StreamSchema | HttpApiSchema.Upgrade> ] extends [never] ? S : never; /** * Creates endpoint constructors for a specific HTTP method. The resulting * constructor builds an `HttpApiEndpoint` from an identifier, path, and optional request * and response schemas, applying automatic JSON or string-tree codecs unless * `disableCodecs` is enabled. * * @stability unstable * @category constructors * @since 4.0.0 */ export declare const make: (method: Method) => { = never, Headers extends Schema.Top | Schema.Struct.Fields = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends Schema.Top | ReadonlyArray = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs?: false | undefined; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; }): HttpApiEndpoint, ToStringTreeCodec, Method extends HttpMethod.WithBody ? ToPayloadCodec> : ToStringTreeCodec>, ToStringTreeCodec, ToSuccessCodec, ToJsonCodec ? Error[number] : Error>>; = never, Headers extends HeadersConstraint = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends ErrorConstraint = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs: true; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; }): HttpApiEndpoint : Params, Query extends Schema.Struct.Fields ? Schema.Struct : Query, ToSchema, ToSchema, UnwrapReadonlyArray, Error extends ReadonlyArray ? Error[number] : Error>; }; type ToSchema> = S extends Schema.Struct.Fields ? Schema.Struct : S extends ReadonlyArray ? S[number] : S; /** * Creates a `GET` endpoint declaration. * * @stability unstable * @category constructors * @since 4.0.0 */ export declare const get: { = never, Headers extends Schema.Top | Schema.Struct.Fields = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends Schema.Top | ReadonlyArray = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs?: false | undefined; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint, ToStringTreeCodec, ToStringTreeCodec>, ToStringTreeCodec, ToSuccessCodec, ToJsonCodec, never, never>; = never, Headers extends HeadersConstraint = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends ErrorConstraint = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs: true; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint : Params, Query extends Schema.Struct.Fields ? Schema.Struct : Query, ToSchema, ToSchema, UnwrapReadonlyArray, Error extends readonly Schema.Constraint[] ? Error[number] : Error, never, never>; }; /** * Creates a `QUERY` endpoint declaration. * * @stability unstable * @category constructors * @since 4.0.0 */ export declare const query: { = never, Headers extends Schema.Top | Schema.Struct.Fields = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends Schema.Top | ReadonlyArray = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs?: false | undefined; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint, ToStringTreeCodec, ToPayloadCodec>, ToStringTreeCodec, ToSuccessCodec, ToJsonCodec, never, never>; = never, Headers extends HeadersConstraint = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends ErrorConstraint = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs: true; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint : Params, Query extends Schema.Struct.Fields ? Schema.Struct : Query, ToSchema, ToSchema, UnwrapReadonlyArray, Error extends readonly Schema.Constraint[] ? Error[number] : Error, never, never>; }; /** * Creates a `POST` endpoint declaration. * * @stability unstable * @category constructors * @since 4.0.0 */ export declare const post: { = never, Headers extends Schema.Top | Schema.Struct.Fields = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends Schema.Top | ReadonlyArray = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs?: false | undefined; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint, ToStringTreeCodec, ToPayloadCodec>, ToStringTreeCodec, ToSuccessCodec, ToJsonCodec, never, never>; = never, Headers extends HeadersConstraint = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends ErrorConstraint = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs: true; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint : Params, Query extends Schema.Struct.Fields ? Schema.Struct : Query, ToSchema, ToSchema, UnwrapReadonlyArray, Error extends readonly Schema.Constraint[] ? Error[number] : Error, never, never>; }; /** * Creates a `PUT` endpoint declaration. * * @stability unstable * @category constructors * @since 4.0.0 */ export declare const put: { = never, Headers extends Schema.Top | Schema.Struct.Fields = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends Schema.Top | ReadonlyArray = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs?: false | undefined; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint, ToStringTreeCodec, ToPayloadCodec>, ToStringTreeCodec, ToSuccessCodec, ToJsonCodec, never, never>; = never, Headers extends HeadersConstraint = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends ErrorConstraint = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs: true; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint : Params, Query extends Schema.Struct.Fields ? Schema.Struct : Query, ToSchema, ToSchema, UnwrapReadonlyArray, Error extends readonly Schema.Constraint[] ? Error[number] : Error, never, never>; }; /** * Creates a `PATCH` endpoint declaration. * * @stability unstable * @category constructors * @since 4.0.0 */ export declare const patch: { = never, Headers extends Schema.Top | Schema.Struct.Fields = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends Schema.Top | ReadonlyArray = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs?: false | undefined; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint, ToStringTreeCodec, ToPayloadCodec>, ToStringTreeCodec, ToSuccessCodec, ToJsonCodec, never, never>; = never, Headers extends HeadersConstraint = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends ErrorConstraint = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs: true; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint : Params, Query extends Schema.Struct.Fields ? Schema.Struct : Query, ToSchema, ToSchema, UnwrapReadonlyArray, Error extends readonly Schema.Constraint[] ? Error[number] : Error, never, never>; }; declare const del: { = never, Headers extends Schema.Top | Schema.Struct.Fields = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends Schema.Top | ReadonlyArray = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs?: false | undefined; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint, ToStringTreeCodec, ToPayloadCodec>, ToStringTreeCodec, ToSuccessCodec, ToJsonCodec, never, never>; = never, Headers extends HeadersConstraint = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends ErrorConstraint = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs: true; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint : Params, Query extends Schema.Struct.Fields ? Schema.Struct : Query, ToSchema, ToSchema, UnwrapReadonlyArray, Error extends readonly Schema.Constraint[] ? Error[number] : Error, never, never>; }; /** * @stability unstable */ export { /** * Creates a `DELETE` endpoint declaration. * * @stability unstable * @category constructors * @since 4.0.0 */ del as delete }; /** * Creates a `HEAD` endpoint declaration. * * @stability unstable * @category constructors * @since 4.0.0 */ export declare const head: { = never, Headers extends Schema.Top | Schema.Struct.Fields = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends Schema.Top | ReadonlyArray = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs?: false | undefined; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint, ToStringTreeCodec, ToStringTreeCodec>, ToStringTreeCodec, ToSuccessCodec, ToJsonCodec, never, never>; = never, Headers extends HeadersConstraint = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends ErrorConstraint = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs: true; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint : Params, Query extends Schema.Struct.Fields ? Schema.Struct : Query, ToSchema, ToSchema, UnwrapReadonlyArray, Error extends readonly Schema.Constraint[] ? Error[number] : Error, never, never>; }; /** * Creates an `OPTIONS` endpoint declaration. * * @stability unstable * @category constructors * @since 4.0.0 */ export declare const options: { = never, Headers extends Schema.Top | Schema.Struct.Fields = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends Schema.Top | ReadonlyArray = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs?: false | undefined; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint, ToStringTreeCodec, ToStringTreeCodec>, ToStringTreeCodec, ToSuccessCodec, ToJsonCodec, never, never>; = never, Headers extends HeadersConstraint = never, const Success extends SuccessConstraint = HttpApiSchema.NoContent, const Error extends ErrorConstraint = never>(identifier: Identifier, path: Path, options?: { readonly disableCodecs: true; readonly params?: Params | undefined; readonly query?: Query | undefined; readonly headers?: Headers | undefined; readonly payload?: Payload | undefined; readonly success?: Success | undefined; readonly error?: (Error & ErrorNoStream>) | undefined; } | undefined): HttpApiEndpoint : Params, Query extends Schema.Struct.Fields ? Schema.Struct : Query, ToSchema, ToSchema, UnwrapReadonlyArray, Error extends readonly Schema.Constraint[] ? Error[number] : Error, never, never>; }; //# sourceMappingURL=HttpApiEndpoint.d.ts.map