abstract fun once(event: String, listener: (event: Event, transactions: Array<Transaction>) -> Unit): InAppPurchase