import { Amount } from "./amount";
import { ApplicationInfo } from "./applicationInfo";
import { LineItem } from "./lineItem";
import { Split } from "./split";
import { ThreeDSecureData } from "./threeDSecureData";
export declare class PaymentAmountUpdateRequest {
    /**
    * The type of adjustment. Possible values:   * **cardholderInitiatedTransaction**   * **merchantInitiatedTransaction**
    */
    "adjustAuthType"?: PaymentAmountUpdateRequest.AdjustAuthTypeEnum;
    /**
    * The required data to make a [synchronous authorization adjustment](https://docs.adyen.com/online-payments/adjust-authorisation). Pass the corresponding value from the `/payments` response or webhook message.
    */
    "adjustAuthorisationData"?: string;
    "amount": Amount;
    "applicationInfo"?: ApplicationInfo | null;
    /**
    * The reason for the amount update. Possible values:  * **delayedCharge**  * **noShow**  * **installment**
    */
    "industryUsage"?: PaymentAmountUpdateRequest.IndustryUsageEnum;
    /**
    * Price and product information of the refunded items, required for [partial refunds](https://docs.adyen.com/online-payments/refund#refund-a-payment). > This field is required for partial refunds with 3x 4x Oney, Affirm, Afterpay, Atome, Clearpay, Klarna, Ratepay, Walley, and Zip.
    */
    "lineItems"?: Array<LineItem>;
    /**
    * The merchant account that is used to process the payment.
    */
    "merchantAccount": string;
    "mpiData"?: ThreeDSecureData | null;
    /**
    * Your reference for the amount update request. Maximum length: 80 characters.
    */
    "reference"?: string;
    /**
    * An array of objects specifying how the amount should be split between accounts when using Adyen for Platforms. For more information, see how to process payments for [marketplaces](https://docs.adyen.com/marketplaces/process-payments) or [platforms](https://docs.adyen.com/platforms/process-payments).
    */
    "splits"?: Array<Split>;
    static readonly discriminator: string | undefined;
    static readonly mapping: {
        [index: string]: string;
    } | undefined;
    static readonly attributeTypeMap: Array<{
        name: string;
        baseName: string;
        type: string;
        format: string;
    }>;
    static getAttributeTypeMap(): {
        name: string;
        baseName: string;
        type: string;
        format: string;
    }[];
    constructor();
}
export declare namespace PaymentAmountUpdateRequest {
    enum AdjustAuthTypeEnum {
        CardholderInitiatedTransaction = "cardholderInitiatedTransaction",
        MerchantInitiatedTransaction = "merchantInitiatedTransaction"
    }
    enum IndustryUsageEnum {
        DelayedCharge = "delayedCharge",
        Installment = "installment",
        NoShow = "noShow"
    }
}
