/**
 * PayPal Server SDKLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */
import { array, boolean, lazy, object, optional, string, } from '../schema';
import { captureStatusSchema } from './captureStatus';
import { captureStatusDetailsSchema, } from './captureStatusDetails';
import { disbursementModeSchema } from './disbursementMode';
import { linkDescriptionSchema } from './linkDescription';
import { moneySchema } from './money';
import { networkTransactionReferenceSchema, } from './networkTransactionReference';
import { paymentsProcessorResponseSchema, } from './paymentsProcessorResponse';
import { sellerProtectionSchema } from './sellerProtection';
import { sellerReceivableBreakdownSchema, } from './sellerReceivableBreakdown';
export const paymentsCaptureSchema = object({
    status: ['status', optional(captureStatusSchema)],
    statusDetails: [
        'status_details',
        optional(lazy(() => captureStatusDetailsSchema)),
    ],
    id: ['id', optional(string())],
    amount: ['amount', optional(lazy(() => moneySchema))],
    invoiceId: ['invoice_id', optional(string())],
    customId: ['custom_id', optional(string())],
    networkTransactionReference: [
        'network_transaction_reference',
        optional(lazy(() => networkTransactionReferenceSchema)),
    ],
    sellerProtection: [
        'seller_protection',
        optional(lazy(() => sellerProtectionSchema)),
    ],
    finalCapture: ['final_capture', optional(boolean())],
    sellerReceivableBreakdown: [
        'seller_receivable_breakdown',
        optional(lazy(() => sellerReceivableBreakdownSchema)),
    ],
    disbursementMode: ['disbursement_mode', optional(disbursementModeSchema)],
    links: ['links', optional(array(lazy(() => linkDescriptionSchema)))],
    processorResponse: [
        'processor_response',
        optional(lazy(() => paymentsProcessorResponseSchema)),
    ],
    createTime: ['create_time', optional(string())],
    updateTime: ['update_time', optional(string())],
});
//# sourceMappingURL=paymentsCapture.js.map