import { AxiosError } from 'axios'; interface ErrorWithMessage { message: string; } interface NormalisedError { heading?: string; message: string; correlationId?: string; status?: number; code?: string; validationErrors?: Record; disableMessage?: boolean; } type NormalisableError = Error | AxiosError | PayloadError | ApiError | ErrorWithMessage | unknown; interface PayloadError { status?: number; message: string; correlationId?: string; payload: unknown; } type ApiErrorStatus = 400 | 401 | 403 | 404 | 422 | 500 | 524; interface ApiErrorPayload { correlationId: string; type: string; title: string; status: ApiErrorStatus; detail: string; } interface ApiError { payload: ApiErrorPayload; } interface ValidationErrorPayload extends ApiErrorPayload { errors: Record; } interface ValidationError { payload: ValidationErrorPayload; } export type { ApiError, ApiErrorPayload, ApiErrorStatus, ErrorWithMessage, NormalisableError, NormalisedError, PayloadError, ValidationError, ValidationErrorPayload };