import { Effect } from "@effect/io/Effect"; import type { ReqRes, RequestSchemed } from "@effect-ts-app/boilerplate-prelude/schema"; import * as H from "@effect-ts-app/core/http/http-client"; import { Path } from "path-parser"; export type FetchError = H.HttpError; export declare class ResponseError { readonly error: unknown; readonly _tag = "ResponseError"; constructor(error: unknown); } export declare function fetchApi(method: H.Method, path: string, body?: unknown): import("@effect/io/Effect").Effect, { body: {} | null; headers: H.Headers; status: number; }>; export declare function fetchApi2S(encodeRequest: (a: RequestA) => RequestE, decodeResponse: (u: unknown) => Effect): (method: H.Method, path: Path) => (req: RequestA) => import("@effect/io/Effect").Effect, { body: ResponseA; headers: H.Headers; status: number; }>; export declare function fetchApi3S({ Request, Response }: { Request: RequestSchemed; Response: ReqRes; }): (req: RequestA) => import("@effect/io/Effect").Effect, { body: ResponseA; headers: H.Headers; status: number; }>; export declare function fetchApi3SE({ Request, Response }: { Request: RequestSchemed; Response: ReqRes; }): (req: RequestA) => import("@effect/io/Effect").Effect, { body: ResponseE; headers: H.Headers; status: number; }>; export declare function makePathWithQuery(path: Path, pars: Record): string; export declare function makePathWithBody(path: Path, pars: Record): string; export declare function mapResponse(map: (t: T) => A): (r: FetchResponse) => FetchResponse; export declare function mapResponseM(map: (t: T) => Effect): (r: FetchResponse) => Effect>; export type FetchResponse = { body: T; headers: H.Headers; status: number; }; export declare const EmptyResponse: Readonly<{ body: null; headers: {}; status: 404; }>; export declare const EmptyResponseM: import("@effect/io/Effect").Effect>; export declare function EmptyResponseMThunk(): Effect>; export declare function getBody(eff: Effect>): import("@effect/io/Effect").Effect; //# sourceMappingURL=fetch.d.ts.map