import type {
  HybxPaymentRequest,
  HybxPaymentResponse,
  HybxSettlementEvent,
  HybxWebhookPayload,
} from './types';

/**
 * HYBX API client contract.
 * Official endpoint paths, auth scheme, and signing rules require HYBX operator documentation.
 */
export interface HybxClient {
  readonly environment: string;

  initiatePayment(request: HybxPaymentRequest): Promise<HybxPaymentResponse>;

  getPaymentStatus(paymentId: string): Promise<HybxPaymentResponse>;

  listSettlementEvents(since?: string): Promise<HybxSettlementEvent[]>;

  parseWebhookPayload(body: string): HybxWebhookPayload;
}
