/** * @since 4.0.0 */ import * as Context from "../../Context.ts"; import * as Duration from "../../Duration.ts"; import * as Effect from "../../Effect.ts"; import * as Layer from "../../Layer.ts"; import type { ReadonlyRecord } from "../../Record.ts"; import * as Schema from "../../Schema.ts"; import type { Simplify } from "../../Types.ts"; import type * as HttpClient from "../http/HttpClient.ts"; import type { HttpClientResponse } from "../http/HttpClientResponse.ts"; import type * as HttpApi from "../httpapi/HttpApi.ts"; import * as HttpApiClient from "../httpapi/HttpApiClient.ts"; import * as HttpApiEndpoint from "../httpapi/HttpApiEndpoint.ts"; import type * as HttpApiGroup from "../httpapi/HttpApiGroup.ts"; import type * as HttpApiMiddleware from "../httpapi/HttpApiMiddleware.ts"; import * as AsyncResult from "./AsyncResult.ts"; import * as Atom from "./Atom.ts"; /** * @since 4.0.0 * @category Models */ export interface AtomHttpApiClient extends Context.Service> { new (_: never): Context.ServiceClass.Shape>; readonly runtime: Atom.AtomRuntime; readonly mutation: , Name extends HttpApiEndpoint.Name>, Group extends HttpApiGroup.Any = HttpApiGroup.WithName, Endpoint extends HttpApiEndpoint.Any = HttpApiEndpoint.WithName, Name>, const ResponseMode extends HttpApiEndpoint.ClientResponseMode = HttpApiEndpoint.ClientResponseMode>(group: GroupName, endpoint: Name, options?: { readonly responseMode?: ResponseMode | undefined; }) => [Endpoint] extends [ HttpApiEndpoint.HttpApiEndpoint ] ? Atom.AtomResultFn & { readonly reactivityKeys?: ReadonlyArray | ReadonlyRecord> | undefined; }>, ResponseByMode<_Success["Type"], ResponseMode>, ErrorByMode<_Error, _Middleware, ResponseMode>> : never; readonly query: , Name extends HttpApiEndpoint.Name>, Group extends HttpApiGroup.Any = HttpApiGroup.WithName, Endpoint extends HttpApiEndpoint.Any = HttpApiEndpoint.WithName, Name>, const ResponseMode extends HttpApiEndpoint.ClientResponseMode = "decoded-only">(group: GroupName, endpoint: Name, request: [Endpoint] extends [ HttpApiEndpoint.HttpApiEndpoint ] ? Simplify & { readonly reactivityKeys?: ReadonlyArray | ReadonlyRecord> | undefined; readonly timeToLive?: Duration.Input | undefined; readonly serializationKey?: string | undefined; }> : never) => [Endpoint] extends [ HttpApiEndpoint.HttpApiEndpoint ] ? Atom.Atom, ErrorByMode<_Error, _Middleware, ResponseMode>>> : never; } declare global { interface ErrorConstructor { stackTraceLimit: number; } } /** * @since 4.0.0 * @category Constructors */ export declare const Service: () => (id: Id, options: { readonly api: HttpApi.HttpApi; readonly httpClient: Layer.Layer | HttpClient.HttpClient> | ((get: Atom.AtomContext) => Layer.Layer | HttpClient.HttpClient>); readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined; readonly transformResponse?: ((effect: Effect.Effect) => Effect.Effect) | undefined; readonly baseUrl?: URL | string | undefined; readonly runtime?: Atom.RuntimeFactory | undefined; }) => AtomHttpApiClient; type ResponseByMode = [ResponseMode] extends [ "decoded-and-response" ] ? [Success, HttpClientResponse] : [ResponseMode] extends ["response-only"] ? HttpClientResponse : Success; type ErrorByMode = HttpApiMiddleware.Error | HttpApiMiddleware.ClientError | ([ResponseMode] extends ["response-only"] ? never : Error["Type"]); export {}; //# sourceMappingURL=AtomHttpApi.d.ts.map