import { StatusCodes } from './statusCodes.js'; /** Base DTO for getting a error response */ export type ApiErrorResponse = { code?: TErrors; message?: string; } & ([TCause] extends [never] ? object : { cause?: TCause; }); export declare namespace ApiErrorResponse { function create(code: TErrors, message?: string, cause?: TCause): ApiErrorResponse; } /** An Error to be thrown as an API error, and be caught */ export declare class ApiError extends Error { readonly status: TCodes; readonly code: TErrors; readonly cause?: TCause; constructor(status: TCodes, code: TErrors, message: string, cause?: TCause); static fromResponse(status: TCodes, responseData: unknown): ApiError | ApiError; }