import { AxiosResponse, AxiosResponseHeaders } from 'axios'; import { APIErrorCode, ClientErrorCode, OpizeErrorCode } from './errorCode'; declare abstract class OpizeErrorBase extends Error { abstract code: Code; } export declare type OpizeClientError = RequestTimeoutError; export declare function isOpizeClientError(error: unknown): error is OpizeClientError; export declare class RequestTimeoutError extends OpizeErrorBase { readonly code = ClientErrorCode.RequestTimeout; readonly name = "RequestTimeoutError"; constructor(message?: string); static isRequestTimeoutError(error: unknown): error is RequestTimeoutError; static rejectAfterTimeout(promise: Promise, timeoutMS: number): Promise; } declare type HTTPResponseErrorCode = ClientErrorCode.ResponseError | APIErrorCode; declare class HTTPResponseError extends OpizeErrorBase { readonly name: string; readonly code: Code; readonly status: number; readonly headers: AxiosResponseHeaders; readonly body: Record; constructor(args: { code: Code; status: number; message: string; headers: AxiosResponseHeaders; body: Record; }); } export declare function isHTTPResponseError(error: unknown): error is UnknownHTTPResponseError | APIResponseError; export declare class UnknownHTTPResponseError extends HTTPResponseError { readonly name = "UnknownHTTPResponseError"; constructor(args: { status: number; message: string | undefined; headers: AxiosResponseHeaders; body: Record; }); static isUnknownHTTPResponseError(error: unknown): error is UnknownHTTPResponseError; } export declare class APIResponseError extends HTTPResponseError { readonly name = "APIResponseError"; static isAPIResponseError(error: unknown): error is APIResponseError; } export declare function buildRequestError(response: AxiosResponse): APIResponseError | UnknownHTTPResponseError; export {}; //# sourceMappingURL=index.d.ts.map