import { PayPal } from '@ionic-native/paypal' ; export class PayPalMock extends PayPal { returns { Promise < string > } version ( ) { let response = '' ; return new Promise ( ( resolve , reject ) => { resolve ( response ) ; } ) ; } ; param { PayPalEnvironment } clientIdsForEnvironments returns { Promise < any > } init ( clientIdsForEnvironments ) { return new Promise ( ( resolve , reject ) => { resolve ( ) ; } ) ; } ; param { String } environment param { PayPalConfiguration } configuration returns { Promise < any > } prepareToRender ( environment , configuration ) { return new Promise ( ( resolve , reject ) => { resolve ( ) ; } ) ; } ; param { PayPalPayment } payment returns { Promise < any > } renderSinglePaymentUI ( payment ) { return new Promise ( ( resolve , reject ) => { resolve ( ) ; } ) ; } ; returns { Promise < any > } clientMetadataID ( ) { return new Promise ( ( resolve , reject ) => { resolve ( ) ; } ) ; } ; returns { Promise < any > } renderFuturePaymentUI ( ) { return new Promise ( ( resolve , reject ) => { resolve ( ) ; } ) ; } ; param { Array < string > } scopes returns { Promise < any > } renderProfileSharingUI ( scopes ) { return new Promise ( ( resolve , reject ) => { resolve ( ) ; } ) ; } ; } export interface PayPalEnvironment { PayPalEnvironmentProduction : string ; PayPalEnvironmentSandbox : string ; } hidden export declare class PayPalPayment { constructor ( amount , currency , shortDescription , intent , details ? ) ; /**
     * The amount of the payment.
     */ amount : string ; /**
     * The ISO 4217 currency for the payment.
     */ currency : string ; /**
     * A short description of the payment.
     */ shortDescription : string ; /**
     * "Sale" for an immediate payment.
     */ intent : string ; /**
     * Optional Build Notation code ("BN code"), obtained from partnerprogram@paypal.com,
     * for your tracking purposes.
     */ bnCode : string ; /**
     * Optional invoice number, for your tracking purposes. (up to 256 characters)
     */ invoiceNumber : string ; /**
     * Optional text, for your tracking purposes. (up to 256 characters)
     */ custom : string ; /**
     * Optional text which will appear on the customer's credit card statement. (up to 22 characters)
     */ softDescriptor : string ; /**
     * Optional array of PayPalItem objects.
     */ items : Array < PayPalItem > ; /**
     * Optional customer shipping address, if your app wishes to provide this to the SDK.
     */ shippingAddress : string ; /**
     * Optional PayPalPaymentDetails object
     */ details : PayPalPaymentDetails ; } hidden export declare class PayPalItem { see https param { String } name param { Number } quantity param { String } price param { String } currency param { String } sku constructor ( name , quantity , price , currency , sku ? ) ; /**
     * Name of the item. 127 characters max
     */ name : string ; /**
     * Number of units. 10 characters max.
     */ quantity : number ; /**
     * Unit price for this item 10 characters max.
     */ price : string ; /**
     * ISO standard currency code.
     */ currency : string ; /**
     * The stock keeping unit for this item. 50 characters max (optional)
     */ sku ? : string ; } hidden export declare class PayPalPaymentDetails { param { String } subtotal param { String } shipping param { String } tax constructor ( subtotal , shipping , tax ) ; /**
     * Sub-total (amount) of items being paid for. 10 characters max with support for 2 decimal places.
     */ subtotal : string ; /**
     * Amount charged for shipping. 10 characters max with support for 2 decimal places.
     */ shipping : string ; /**
     * Amount charged for tax. 10 characters max with support for 2 decimal places.
     */ tax : string ; } hidden export interface PayPalConfigurationOptions { /**
     * Will be overridden by email used in most recent PayPal login.
     */ defaultUserEmail ? : string ; /**
     * Will be overridden by phone country code used in most recent PayPal login
     */ defaultUserPhoneCountryCode ? : string ; /**
     * Will be overridden by phone number used in most recent PayPal login.
     */ defaultUserPhoneNumber ? : string ; /**
     * Your company name, as it should be displayed to the user when requesting consent via a PayPalFuturePaymentViewController.
     */ merchantName ? : string ; /**
     * URL of your company's privacy policy, which will be offered to the user when requesting consent via a PayPalFuturePaymentViewController.
     */ merchantPrivacyPolicyURL ? : string ; /**
     * URL of your company's user agreement, which will be offered to the user when requesting consent via a PayPalFuturePaymentViewController.
     */ merchantUserAgreementURL ? : string ; /**
     * If set to NO, the SDK will only support paying with PayPal, not with credit cards.
     * This applies only to single payments (via PayPalPaymentViewController).
     * Future payments (via PayPalFuturePaymentViewController) always use PayPal.
     * Defaults to true
     */ acceptCreditCards ? : boolean ; /**
     * For single payments, options for the shipping address.
     * - 0 - PayPalShippingAddressOptionNone: no shipping address applies.
     * - 1 - PayPalShippingAddressOptionProvided: shipping address will be provided by your app,
     *   in the shippingAddress property of PayPalPayment.
     * - 2 - PayPalShippingAddressOptionPayPal: user will choose from shipping addresses on file
     *   for their PayPal account.
     * - 3 - PayPalShippingAddressOptionBoth: user will choose from the shipping address provided by your app,
     *   in the shippingAddress property of PayPalPayment, plus the shipping addresses on file for the user's PayPal account.
     * Defaults to 0 (PayPalShippingAddressOptionNone).
     */ payPalShippingAddressOption ? : number ; /**
     * If set to YES, then if the user pays via their PayPal account,
     * the SDK will remember the user's PayPal username or phone number;
     * if the user pays via their credit card, then the SDK will remember
     * the PayPal Vault token representing the user's credit card.
     *
     * If set to NO, then any previously-remembered username, phone number, or
     * credit card token will be erased, and subsequent payment information will
     * not be remembered.
     *
     * Defaults to YES.
     */ rememberUser ? : boolean ; /**
     * If not set, or if set to nil, defaults to the device's current language setting.
     *
     * Can be specified as a language code ("en", "fr", "zh-Hans", etc.) or as a locale ("en_AU", "fr_FR", "zh-Hant_HK", etc.).
     * If the library does not contain localized strings for a specified locale, then will fall back to the language. E.g., "es_CO" -> "es".
     * If the library does not contain localized strings for a specified language, then will fall back to American English.
     *
     * If you specify only a language code, and that code matches the device's currently preferred language,
     * then the library will attempt to use the device's current region as well.
     * E.g., specifying "en" on a device set to "English" and "United Kingdom" will result in "en_GB".
     */ languageOrLocale ? : string ; /**
     * Normally, the SDK blurs the screen when the app is backgrounded,
     * to obscure credit card or PayPal account details in the iOS-saved screenshot.
     * If your app already does its own blurring upon backgrounding, you might choose to disable this.
     * Defaults to NO.
     */ disableBlurWhenBackgrounding ? : boolean ; /**
     * If you will present the SDK's view controller within a popover, then set this property to YES.
     * Defaults to NO. (iOS only)
     */ presentingInPopover ? : boolean ; /**
     * Sandbox credentials can be difficult to type on a mobile device. Setting this flag to YES will
     * cause the sandboxUserPassword and sandboxUserPin to always be pre-populated into login fields.
     */ forceDefaultsInSandbox ? : boolean ; /**
     * Password to use for sandbox if 'forceDefaultsInSandbox' is set.
     */ sandboxUserPassword ? : string ; /**
     * PIN to use for sandbox if 'forceDefaultsInSandbox' is set.
     */ sandboxUserPin ? : string ; hidden [ key ] : any ; } hidden export declare class PayPalConfiguration implements PayPalConfigurationOptions { /**
     * You use a PayPalConfiguration object to configure many aspects of how the SDK behaves.
     * see defaults for options available
     */ constructor ( options ? ) ; } hidden export declare class PayPalShippingAddress { param { String } recipientName param { String } line1 param { String } line2 param { String } city param { String } state param { String } postalCode param { String } countryCode constructor ( recipientName , line1 , line2 , city , state , postalCode , countryCode ) ; /**
     * Name of the recipient at this address. 50 characters max.
     */ recipientName : string ; /**
     * Line 1 of the address (e.g., Number, street, etc). 100 characters max.
     */ line1 : string ; /**
     * Line 2 of the address (e.g., Suite, apt #, etc). 100 characters max. Optional.
     */ line2 : string ; /**
     * City name. 50 characters max.
     */ city : string ; /**
     * 2-letter code for US states, and the equivalent for other countries. 100 characters max. Required in certain countries.
     */ state : string ; /**
     * ZIP code or equivalent is usually required for countries that have them. 20 characters max. Required in certain countries.
     */ postalCode : string ; /**
     * 2-letter country code. 2 characters max.
     */ countryCode : string ; }