export default class Invitereferrals {
  // # CAMPAIGN METHODS
  static campaign(
    campaignInfo: RNIRCampaignInfo,
    userInfo: RNIRUserInfo,
    callback: any
  ): void;

  static campaignPopup(
    ruleName: String,
    campaignInfo: RNIRCampaignInfo,
    userInfo: RNIRUserInfo
  ): void;

  static getSharingDetails(
    campaignInfo: RNIRCampaignInfo,
    userInfo: RNIRUserInfo,
    callback: any
  ): void;

  static tracking(
    eventInfo: RNIREventInfo,
    userInfo: RNIRUserInfo,
    irCallback: any
  ): void;

  // # OTHER USEFUL METHODS
  static showWelcomeMessage(): void;
  static getReferrerCode(callback: any): void;
  static getReferringParams(callback: any): void;
  static setLocale(locale: any): void;
  static trackInvite(inviteParameter: any, campaignID: any): void;
  static logout(): void;
  static closeButtonListener(irCallback: any): void;
  static leadSubmissionListener(irCallback: any): void;
}

export class RNIRCampaignInfo {
  campaignID: number;
  templateID: number;
}

export class RNIRUserInfo {
  name: String;
  email: String;
  mobile: String;
  subscriptionID: String;
  customValueOne: String;
  customValueTwo: String;
}

export class RNIREventInfo {
  eventName: String;
  orderID: String;
  purchaseValue: String;
  referrerCode: String;
  uniqueCode: String;
  orderCustomValue: String;
}
