import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import type * as FiberRef from "effect/FiberRef"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Runtime from "effect/Runtime"; import * as Scope from "effect/Scope"; import type { HttpMiddleware } from "./HttpMiddleware.js"; import * as ServerError from "./HttpServerError.js"; import * as ServerRequest from "./HttpServerRequest.js"; import * as ServerResponse from "./HttpServerResponse.js"; /** * @since 1.0.0 * @category models */ export type HttpApp = Effect.Effect; /** * @since 1.0.0 * @category models */ export type Default = HttpApp; /** * @since 1.0.0 * @category combinators */ export declare const toHandled: (self: Default, handleResponse: (request: ServerRequest.HttpServerRequest, response: ServerResponse.HttpServerResponse) => Effect.Effect<_, EH, RH>, middleware?: HttpMiddleware | undefined) => Effect.Effect>; /** * If you want to finalize the http request scope elsewhere, you can use this * function to eject from the default scope closure. * * @since 1.0.0 * @category Scope */ export declare const ejectDefaultScopeClose: (scope: Scope.Scope) => void; /** * @since 1.0.0 * @category Scope */ export declare const unsafeEjectStreamScope: (response: ServerResponse.HttpServerResponse) => ServerResponse.HttpServerResponse; /** * @since 1.0.0 * @category models */ export type PreResponseHandler = (request: ServerRequest.HttpServerRequest, response: ServerResponse.HttpServerResponse) => Effect.Effect; /** * @since 1.0.0 * @category fiber refs */ export declare const currentPreResponseHandlers: FiberRef.FiberRef>; /** * @since 1.0.0 * @category fiber refs */ export declare const appendPreResponseHandler: (handler: PreResponseHandler) => Effect.Effect; /** * @since 1.0.0 * @category fiber refs */ export declare const withPreResponseHandler: ((handler: PreResponseHandler) => (self: HttpApp) => HttpApp) & ((self: HttpApp, handler: PreResponseHandler) => HttpApp); /** * @since 1.0.0 * @category conversions */ export declare const toWebHandlerRuntime: (runtime: Runtime.Runtime) => (self: Default, middleware?: HttpMiddleware | undefined) => (request: Request, context?: Context.Context | undefined) => Promise; /** * @since 1.0.0 * @category conversions */ export declare const toWebHandler: (self: Default, middleware?: HttpMiddleware | undefined) => (request: Request, context?: Context.Context | undefined) => Promise; /** * @since 1.0.0 * @category conversions */ export declare const toWebHandlerLayerWith: (layer: Layer.Layer, options: { readonly toHandler: (runtime: Runtime.Runtime) => Effect.Effect, EX>; readonly middleware?: HttpMiddleware | undefined; readonly memoMap?: Layer.MemoMap | undefined; }) => { readonly dispose: () => Promise; readonly handler: (request: Request, context?: Context.Context | undefined) => Promise; }; /** * @since 1.0.0 * @category conversions */ export declare const toWebHandlerLayer: (self: Default, layer: Layer.Layer, options?: { readonly memoMap?: Layer.MemoMap | undefined; readonly middleware?: HttpMiddleware | undefined; }) => { readonly dispose: () => Promise; readonly handler: (request: Request, context?: Context.Context | undefined) => Promise; }; /** * @since 1.0.0 * @category conversions */ export declare const fromWebHandler: (handler: (request: Request) => Promise) => Default; //# sourceMappingURL=HttpApp.d.ts.map