import type { HybridObject } from 'react-native-nitro-modules';
import type { CustomerInfo, FawryLanguages, FawryLaunchModel, FawryPayListener, MerchantInfo } from './types';

export interface RnFawryPaySdk
  extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
  multiply(a: number, b: number): number;

  startPayment(model: FawryLaunchModel): void;

  openCardsManager(
    baseUrl: string,
    lang: FawryLanguages,
    merchantInfo: MerchantInfo,
    customerInfo: CustomerInfo,
    tokenizationSignature?: string
  ): void;

  /**
   * Registers a native event listener callback.
   * This is used with NitroModules to receive emitted native events.
   */
  addListener(listener: FawryPayListener): () => void
}
