import { Schema } from "@effect-ts-app/boilerplate-prelude"; import { ParsedShapeOfCustom, EncodedOf } from "@effect-ts-app/boilerplate-prelude/schema"; import { Effect } from "@effect/io/Effect"; import type { GetResponse } from "@effect-ts-app/boilerplate-prelude/schema"; import type * as H from "@effect-ts-app/core/http/http-client"; import type { ApiConfig } from "./config.js"; import type { FetchError, FetchResponse } from "./fetch.js"; import { ResponseError } from "./fetch.js"; export * from "./config.js"; type Requests = Record>; export type Client = RequestHandlers & RequestHandlersE; export declare function clientFor(models: M): Client; export type ExtractResponse = T extends { Model: Schema.SchemaAny; } ? ParsedShapeOfCustom : T extends Schema.SchemaAny ? ParsedShapeOfCustom : T extends unknown ? Schema.Void : never; export type ExtractEResponse = T extends { Model: Schema.SchemaAny; } ? EncodedOf : T extends Schema.SchemaAny ? EncodedOf : T extends unknown ? Schema.Void : never; type RequestHandlers = { [K in keyof M & string as Uncapitalize]: keyof Schema.GetRequest[Schema.schemaField]["Api"]["props"] extends never ? Effect>>> & { Request: Schema.GetRequest; Reponse: ExtractResponse>; mapPath: string; } : ((req: InstanceType>) => Effect>>>) & { Request: Schema.GetRequest; Reponse: ExtractResponse>; mapPath: (req?: InstanceType>) => string; }; }; type RequestHandlersE = { [K in keyof M & string as `${Uncapitalize}E`]: keyof Schema.GetRequest[Schema.schemaField]["Api"]["props"] extends never ? Effect>>> & { Request: Schema.GetRequest; Reponse: ExtractResponse>; mapPath: string; } : ((req: InstanceType>) => Effect>>>) & { Request: Schema.GetRequest; Reponse: ExtractResponse>; mapPath: (req?: InstanceType>) => string; }; }; //# sourceMappingURL=clientFor.d.ts.map