import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import { Rpc, RpcGroup, RpcSerialization } from "effect/unstable/rpc"; import * as Config from "../Config.js"; import * as Context from "../Context.js"; import * as Effect from "../Effect.js"; import { HttpClient } from "../http.js"; import type * as S from "../Schema.js"; import type { ClientForOptions, ExtractModuleName, RequestsAny } from "./clientFor.js"; export interface ApiConfig { url: string; headers: Option.Option>; } export declare const DefaultApiConfig: Config.Config<{ url: string; headers: Option.Option<{ readonly [x: string]: string; }>; }>; export type Req = S.Top & { readonly make: (...args: any[]) => any; _tag: string; fields: S.Struct.Fields; success: S.Top; error: S.Top; /** Optional final-value schema for stream requests. When set, the execute effect resolves with the last stream value decoded to this type. */ final?: S.Top; config?: Record; readonly id: string; readonly moduleName: string; readonly type: "command" | "query"; readonly stream: boolean; readonly middleware?: unknown; }; export declare const HttpClientLayer: (config: ApiConfig) => Layer.Layer; export declare const HttpClientFromConfigLayer: Layer.Layer; export declare const RpcSerializationLayer: (config: ApiConfig) => Layer.Layer; type RpcHandlers = { [K in keyof M]: Rpc.Rpc; }; export declare const getMeta: (resource: M) => { moduleName: ExtractModuleName; middleware?: unknown; }; export declare const makeRpcGroupFromRequestsAndModuleName: (resource: M, moduleName: ModuleName, middleware?: any) => RpcGroup.RpcGroup[keyof { [K in keyof M as M[K] extends Req ? K : never]: M[K] extends Req ? M[K] : never; }], `${ModuleName}.`>>; declare const ApiClientFactory_base: Context.OpaqueClass, options?: ClientForOptions) => (models: M) => Effect.Effect>, never, never>>; /** * Used to create clients for resource modules. */ export declare class ApiClientFactory extends ApiClientFactory_base { static readonly layer: (config: ApiConfig) => Layer.Layer; static readonly layerFromConfig: Layer.Layer; static readonly makeFor: (requestLevelLayers: Layer.Layer, options?: ClientForOptions) => (resource: M) => Effect.Effect>, never, ApiClientFactory>; } export {}; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpQ2xpZW50RmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9hcGlDbGllbnRGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBRXJDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBS3ZDLE9BQU8sRUFBRSxHQUFHLEVBQWEsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDaEYsT0FBTyxLQUFLLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxZQUFZLENBQUE7QUFFMUQsT0FBTyxLQUFLLEtBQUssQ0FBQyxNQUFNLGNBQWMsQ0FBQTtBQUV0QyxPQUFPLEtBQUssRUFBVSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUc5RixNQUFNLFdBQVcsU0FBUztJQUN4QixHQUFHLEVBQUUsTUFBTSxDQUFBO0lBQ1gsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0NBQy9DO0FBRUQsZUFBTyxNQUFNLGdCQUFnQjs7Ozs7RUFRM0IsQ0FBQTtBQUVGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRztJQUN4QixRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssR0FBRyxDQUFBO0lBQ3RDLElBQUksRUFBRSxNQUFNLENBQUE7SUFDWixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUE7SUFDdkIsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUE7SUFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNaLDhJQUE4STtJQUM5SSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFBO0lBQ2IsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUM1QixRQUFRLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQTtJQUNuQixRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQTtJQUMzQixRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUE7SUFDbEMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUE7SUFDeEIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUM5QixDQUFBO0FBTUQsZUFBTyxNQUFNLGVBQWUsV0FBWSxTQUFTLHFFQXFCOUMsQ0FBQTtBQUVILGVBQU8sTUFBTSx5QkFBeUIsK0VBS3JDLENBQUE7QUFFRCxlQUFPLE1BQU0scUJBQXFCLFdBQVksU0FBUyx5R0FJcEQsQ0FBQTtBQUVILEtBQUssV0FBVyxDQUFDLENBQUMsU0FBUyxXQUFXLElBQUk7S0FDdkMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0NBQzVFLENBQUE7QUFvQkQsZUFBTyxNQUFNLE9BQU8sR0FBSSxDQUFDLFNBQVMsV0FBVyxZQUNqQyxDQUFDLEtBQ1Y7SUFBRSxVQUFVLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFBQyxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUE7Q0FJMUQsQ0FBQTtBQUVELGVBQU8sTUFBTSxxQ0FBcUMsR0FBSSxDQUFDLFNBQVMsV0FBVyxFQUFFLEtBQUssQ0FBQyxVQUFVLFNBQVMsTUFBTSxZQUNoRyxDQUFDLGNBQ0MsVUFBVSxlQUVULEdBQUcsbURBNUJiLENBQUMsaU1BNERMLENBQUE7b0hBa01vRCxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLGdCQUFnQixNQU8xRCxDQUFDLFNBQVMsV0FBVztBQWU5RDs7R0FFRztBQUNILHFCQUFhLGdCQUNYLFNBQVEscUJBQW1HO0lBRTNHLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxXQUFZLFNBQVMsaUVBQ3lEO0lBQ25HLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSwyRUFLOUI7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sdUJBQ0EsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxnQkFBZ0IsTUFDbEUsQ0FBQyxTQUFTLFdBQVcsWUFDVixDQUFDLDZIQUtUO0NBQ1AifQ==