/**
 * PayPal Server SDKLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */
import { boolean, lazy, object, optional, string } from '../schema';
import { addressSchema } from './address';
import { nameSchema } from './name';
import { paypalPaymentTokenCustomerTypeSchema, } from './paypalPaymentTokenCustomerType';
import { paypalPaymentTokenUsageTypeSchema, } from './paypalPaymentTokenUsageType';
import { phoneSchema } from './phone';
import { phoneWithTypeSchema } from './phoneWithType';
import { usagePatternSchema } from './usagePattern';
import { vaultedDigitalWalletShippingDetailsSchema, } from './vaultedDigitalWalletShippingDetails';
export const paypalPaymentTokenSchema = object({
    description: ['description', optional(string())],
    usagePattern: ['usage_pattern', optional(usagePatternSchema)],
    shipping: [
        'shipping',
        optional(lazy(() => vaultedDigitalWalletShippingDetailsSchema)),
    ],
    permitMultiplePaymentTokens: [
        'permit_multiple_payment_tokens',
        optional(boolean()),
    ],
    usageType: ['usage_type', optional(paypalPaymentTokenUsageTypeSchema)],
    customerType: [
        'customer_type',
        optional(paypalPaymentTokenCustomerTypeSchema),
    ],
    emailAddress: ['email_address', optional(string())],
    payerId: ['payer_id', optional(string())],
    name: ['name', optional(lazy(() => nameSchema))],
    phone: ['phone', optional(lazy(() => phoneWithTypeSchema))],
    address: ['address', optional(lazy(() => addressSchema))],
    accountId: ['account_id', optional(string())],
    phoneNumber: ['phone_number', optional(lazy(() => phoneSchema))],
});
//# sourceMappingURL=paypalPaymentToken.js.map