import { HasRequiredKeys, UnionToIntersection } from "./helper.mjs"; import { APIError, BetterCallError, Status, ValidationError, hideInternalStackFrames, kAPIErrorHeaderSymbol, makeErrorForHideStackFrame, statusCodes } from "./error.mjs"; import { Endpoint } from "./endpoint.mjs"; import { Router } from "./router.mjs"; import { BetterFetchOption, BetterFetchResponse } from "@better-fetch/fetch"; //#region src/client.d.ts type HasRequired = T extends {} ? false : T extends { body?: any; query?: any; params?: any; } ? T["body"] extends object ? HasRequiredKeys extends true ? true : T["query"] extends object ? HasRequiredKeys extends true ? true : T["params"] extends object ? HasRequiredKeys : false : T["params"] extends object ? HasRequiredKeys : false : T["query"] extends object ? HasRequiredKeys extends true ? true : T["params"] extends object ? HasRequiredKeys : false : T["params"] extends object ? HasRequiredKeys : false : false; type InferContext = T extends ((ctx: infer Ctx) => any) ? Ctx extends object ? Ctx : never : never; interface ClientOptions extends BetterFetchOption { baseURL?: string; } type WithRequired = T & { [P in K extends string ? K : never]-?: T[P extends keyof T ? P : never] }; type InferClientRoutes> = { [K in keyof T]: T[K] extends Endpoint ? O extends { metadata: { scope: "http"; }; } | { metadata: { scope: "server"; }; } | { metadata: { SERVER_ONLY: true; }; } | { metadata: { isAction: false; }; } ? never : T[K] : T[K] }; type RequiredOptionKeys = (undefined extends C["body"] ? {} : { body: true; }) & (undefined extends C["query"] ? {} : { query: true; }) & (undefined extends C["params"] ? {} : { params: true; }); declare const createClient: (options?: ClientOptions) => ; } ? R["endpoints"] : R> extends { [key: string]: infer T_1; } ? T_1 extends Endpoint ? { [key in T_1["options"]["method"] extends "GET" ? T_1["path"] : `@${T_1["options"]["method"] extends string ? Lowercase : never}${T_1["path"]}`]: T_1 } : {} : {}> extends infer T ? { [K_1 in keyof T]: T[K_1] } : never), K extends keyof OPT, C extends InferContext>(path: K, ...options: HasRequired extends true ? [WithRequired, keyof RequiredOptionKeys>] : [BetterFetchOption?]) => Promise>>>; //#endregion export { APIError, BetterCallError, ClientOptions, HasRequired, RequiredOptionKeys, Status, ValidationError, createClient, hideInternalStackFrames, kAPIErrorHeaderSymbol, makeErrorForHideStackFrame, statusCodes }; //# sourceMappingURL=client.d.mts.map