export interface BaseResponse {
  code: string;
  description: string;
}
export interface AccessTokenResponse extends BaseResponse {
  data: {
    businessId: string;
    access_token: string;
    refresh_token: string;
    expiresAt: string;
  };
}
export interface AccountBalanceResponse extends BaseResponse {
  data: {
    amount: string;
    currency: string;
    timeCreated: string;
  };
}
export interface CreateVirtualAccountResponse extends BaseResponse {
  data: {
    createdAt: string;
    accountHolderId: string;
    accountRef: string;
    bvn: string;
    accountName: string;
    bankName: string;
    bankAccountNumber: string;
    bankAccountName: string;
    currency: string;
    callbackUrl: string;
    expired: boolean;
  };
}
export interface BankTransferResponse extends BaseResponse {
  data: {
    amount: number;
    meta: {
      merchantTxRef: string;
      api_client_id: string;
      api_account_id: string;
      rrn: string;
    };
    fee: number;
    timeCreated: number;
    id: string;
    type: string;
    status: string;
  };
}
export interface GetTransactionByRefResponse extends BaseResponse {
  data: {
    id: string;
    status: string;
    amount: string;
    fixedCharge: string;
    source: string;
    type: string;
    customerBillerId: string;
    timeCreated: string;
    timeUpdated: string;
    walletCurrency: string;
    walletBalance: string;
    billingVendorReference: string;
    paymentVendorReference: string;
    userId: string;
    ktaSenderName: string;
    ktaSenderAccountNumber: string;
    ktaSenderBankCode: string;
    senderName: string;
    bankCode: string;
    productId: string;
    isAgentTransaction: boolean;
    isInternational: boolean;
    customerCommission: number;
    sessionId: string;
    accountNumber: string;
    bankName: string;
  };
}
declare class NombaPaymentModule {
  private $;
  private clientId;
  private clientSecret;
  private globalMutableHeaders;
  constructor(clientId: string, clientSecret: string, accountId: string);
  private obtainAccessToken;
  getBalance(accountId: string): Promise<AccountBalanceResponse>;
  createVirtualAccount(accountRef: string, accountName: string): Promise<CreateVirtualAccountResponse>;
  getTransactionOnParentAccountUsingReference(txRef: string): Promise<GetTransactionByRefResponse>;
  getTransactionOnNonParentAccountUsingReference(
    accountId: string,
    txRef: string
  ): Promise<GetTransactionByRefResponse>;
  initiateBankTransfer(
    amount: number,
    accountNumber: string,
    accountName: string,
    bankCode: string,
    reference?: string,
    narration?: string
  ): Promise<BankTransferResponse>;
}
/**
 *
 * @param clientId Client ID gotten from your dashboard
 * @param clientSecret Client secret gotten from your dashboard
 * @param accountId Nomba account ID
 * @returns
 */
export declare const initNombaPaymentModule: (
  clientId: string,
  clientSecret: string,
  accountId: string
) => NombaPaymentModule;
export {};
//# sourceMappingURL=nomba.d.ts.map
