type OpenApiPathsLike = object; interface ServiceArguments { url: TPath; method: TMethod; pathVariable?: Paths[TPath][TMethod] extends { parameters: { path: infer P; }; } ? P | undefined : Record | undefined; queryString?: Paths[TPath][TMethod] extends { parameters: { query: infer Q; }; } ? Q | undefined : Record | undefined; body?: Paths[TPath][TMethod] extends { requestBody: { content: { "application/json": infer B; }; }; } ? B | undefined : unknown; /** response.ok 여부와 상관없이 Response를 직접 파싱하고 싶을 때 */ resultInterceptor?: (response: Response) => Promise; /** per-request headers */ headers?: Readonly>; } interface CacheForService { cacheTime: number; cacheSize?: number; cacheName: CacheName; } /** 코어가 던지는 표준 에러 (401 포함) */ declare class HttpResponseError extends Error { readonly response: Response; readonly args: Args; readonly data?: unknown | undefined; readonly name = "HttpResponseError"; constructor(response: Response, args: Args, data?: unknown | undefined, message?: string); get status(): number; } declare const isHttpResponseError: (e: unknown) => e is HttpResponseError; export { type CacheForService as C, HttpResponseError as H, type OpenApiPathsLike as O, type ServiceArguments as S, isHttpResponseError as i };