export interface ApiResponse<T> {
  code: number;
  message?: string;
  data: T;
}

export interface RequestOptions {
  signal?: AbortSignal;
  headers?: Record<string, string>;
  skipAuth?: boolean;
}

export type RequestContext = {
  token: string | null;
  clientId: string | null;
  latitude: number | null;
  longitude: number | null;
  language: string | null;
};

export type NormalizedErrorKind = "business" | "http" | "network" | "unknown";

export interface NormalizedError extends Error {
  kind: NormalizedErrorKind;
  code?: number;
  httpStatus?: number;
  response?: unknown;
}

