/** Placeholder HYBX API types — require official HYBX documentation for production. */

export type HybxEnvironment = 'sandbox' | 'staging' | 'production';

export type HybxPaymentStatus = 'pending' | 'accepted' | 'rejected' | 'settled' | 'returned';

export type HybxPaymentRequest = {
  idempotencyKey: string;
  entityId: string;
  tenantId: string;
  amount: string;
  currency: string;
  debtorAccountRef: string;
  creditorAccountRef: string;
  endToEndId?: string;
  purposeCode?: string;
  remittanceInformation?: string;
  metadata?: Record<string, unknown>;
};

export type HybxPaymentResponse = {
  paymentId: string;
  status: HybxPaymentStatus;
  uetr?: string;
  messageId?: string;
  createdAt: string;
  rawReference?: string;
};

export type HybxSettlementEvent = {
  eventId: string;
  paymentId: string;
  status: HybxPaymentStatus;
  settlementDate?: string;
  reasonCode?: string;
  timestamp: string;
};

export type HybxWebhookPayload = {
  eventType: string;
  eventId: string;
  timestamp: string;
  data: Record<string, unknown>;
};
