/** * @since 1.0.0 */ import type * as Etag from "@effect/platform/Etag"; import type * as App from "@effect/platform/HttpApp"; import type * as HttpClient from "@effect/platform/HttpClient"; import type * as Middleware from "@effect/platform/HttpMiddleware"; import type * as Platform from "@effect/platform/HttpPlatform"; import type * as Server from "@effect/platform/HttpServer"; import type { ServeError } from "@effect/platform/HttpServerError"; import type * as ServerRequest from "@effect/platform/HttpServerRequest"; import type * as Config from "effect/Config"; import type * as ConfigError from "effect/ConfigError"; import type * as Effect from "effect/Effect"; import type { LazyArg } from "effect/Function"; import type * as Layer from "effect/Layer"; import type * as Scope from "effect/Scope"; import type * as Http from "node:http"; import type * as Net from "node:net"; import type * as NodeContext from "./NodeContext.js"; /** * @since 1.0.0 * @category constructors */ export declare const make: (evaluate: LazyArg>, options: Net.ListenOptions) => Effect.Effect; /** * @since 1.0.0 * @category constructors */ export declare const makeHandler: { /** * @since 1.0.0 * @category constructors */ (httpApp: App.Default): Effect.Effect<(nodeRequest: Http.IncomingMessage, nodeResponse: Http.ServerResponse) => void, never, Exclude>; /** * @since 1.0.0 * @category constructors */ >(httpApp: App.Default, middleware: Middleware.HttpMiddleware.Applied): Effect.Effect<(nodeRequest: Http.IncomingMessage, nodeResponse: Http.ServerResponse) => void, never, Exclude, ServerRequest.HttpServerRequest | Scope.Scope>>; }; /** * @since 1.0.0 * @category layers */ export declare const layerServer: (evaluate: LazyArg, options: Net.ListenOptions) => Layer.Layer; /** * @since 1.0.0 * @category layers */ export declare const layer: (evaluate: LazyArg>, options: Net.ListenOptions) => Layer.Layer; /** * @since 1.0.0 * @category layers */ export declare const layerConfig: (evaluate: LazyArg>, options: Config.Config.Wrap) => Layer.Layer; /** * Layer starting a server on a random port and producing an `HttpClient` * with prepended url of the running http server. * * **Example** * * ```ts * import * as assert from "node:assert" * import { HttpClient, HttpRouter, HttpServer } from "@effect/platform" * import { NodeHttpServer } from "@effect/platform-node" * import { Effect } from "effect" * * Effect.gen(function*() { * yield* HttpServer.serveEffect(HttpRouter.empty) * const response = yield* HttpClient.get("/") * assert.strictEqual(response.status, 404) * }).pipe(Effect.provide(NodeHttpServer.layerTest)) * ``` * * @since 1.0.0 * @category layers */ export declare const layerTest: Layer.Layer; /** * A Layer providing the `HttpPlatform`, `FileSystem`, `Etag.Generator`, and `Path` * services. * * The `FileSystem` service is a no-op implementation, so this layer is only * useful for platforms that have no file system. * * @since 1.0.0 * @category layers */ export declare const layerContext: Layer.Layer; //# sourceMappingURL=NodeHttpServer.d.ts.map