import { AccountInfo } from "./accountInfo";
import { Amount } from "./amount";
import { ApplicationInfo } from "./applicationInfo";
import { AuthenticationData } from "./authenticationData";
import { BillingAddress } from "./billingAddress";
import { BrowserInfo } from "./browserInfo";
import { CheckoutBankAccount } from "./checkoutBankAccount";
import { Company } from "./company";
import { DeliveryAddress } from "./deliveryAddress";
import { EncryptedOrderData } from "./encryptedOrderData";
import { EnhancedSchemeData } from "./enhancedSchemeData";
import { ForexQuote } from "./forexQuote";
import { FundOrigin } from "./fundOrigin";
import { FundRecipient } from "./fundRecipient";
import { Installments } from "./installments";
import { LineItem } from "./lineItem";
import { Mandate } from "./mandate";
import { MerchantRiskIndicator } from "./merchantRiskIndicator";
import { PaymentRequestPaymentMethod } from "./paymentRequestPaymentMethod";
import { PaymentValidations } from "./paymentValidations";
import { PlatformChargebackLogic } from "./platformChargebackLogic";
import { RiskData } from "./riskData";
import { ShopperName } from "./shopperName";
import { ShopperTaxInfo } from "./shopperTaxInfo";
import { Split } from "./split";
import { SubMerchantInfo } from "./subMerchantInfo";
import { Surcharge } from "./surcharge";
import { ThreeDS2RequestFields } from "./threeDS2RequestFields";
import { ThreeDSecureData } from "./threeDSecureData";
export declare class PaymentRequest {
    "accountInfo"?: AccountInfo | null;
    "additionalAmount"?: Amount | null;
    /**
    * This field contains additional data, which may be required for a particular payment request.  The `additionalData` object consists of entries, each of which includes the key and value.
    */
    "additionalData"?: {
        [key: string]: string;
    };
    "amount": Amount;
    "applicationInfo"?: ApplicationInfo | null;
    "authenticationData"?: AuthenticationData | null;
    "bankAccount"?: CheckoutBankAccount | null;
    "billingAddress"?: BillingAddress | null;
    "browserInfo"?: BrowserInfo | null;
    /**
    * The [delay between the authorization and automatic capture](https://docs.adyen.com/online-payments/capture?tab=delayed-individual_2#delayed-automatic-capture) of the payment, specified in hours.  Maximum value: **672** (28 days).
    */
    "captureDelayHours"?: number;
    /**
    * The platform where a payment transaction takes place. This field is optional for filtering out payment methods that are only available on specific platforms. If this value is not set, then we will try to infer it from the `sdkVersion` or `token`.  Possible values: * iOS * Android * Web
    */
    "channel"?: PaymentRequest.ChannelEnum;
    /**
    * Checkout attempt ID that corresponds to the Id generated by the client SDK for tracking user payment journey.
    */
    "checkoutAttemptId"?: string;
    "company"?: Company | null;
    /**
    * The shopper country code.  Format: [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) Example: NL or DE
    */
    "countryCode"?: string;
    /**
    * The shopper\'s date of birth.  Format [ISO-8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DD
    */
    "dateOfBirth"?: Date;
    "dccQuote"?: ForexQuote | null;
    /**
    * The date and time the purchased goods should be delivered.  Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD  Example: 2017-07-17T13:42:40.428+01:00
    */
    "deliverAt"?: Date;
    "deliveryAddress"?: DeliveryAddress | null;
    /**
    * The date and time the purchased goods should be delivered.  Format [ISO 8601](https://www.w3.org/TR/NOTE-datetime): YYYY-MM-DDThh:mm:ss.sssTZD  Example: 2017-07-17T13:42:40.428+01:00
    *
    * @deprecated since Adyen Checkout API v70
    * Use `deliverAt` instead.
    */
    "deliveryDate"?: Date;
    /**
    * A string containing the shopper\'s device fingerprint. For more information, refer to [Device fingerprinting](https://docs.adyen.com/risk-management/device-fingerprinting).
    */
    "deviceFingerprint"?: string;
    /**
    * When true and `shopperReference` is provided, the shopper will be asked if the payment details should be stored for future [one-click payments](https://docs.adyen.com/get-started-with-adyen/payment-glossary/#one-click-payments-definition).
    */
    "enableOneClick"?: boolean;
    /**
    * When true and `shopperReference` is provided, the payment details will be tokenized for payouts.
    */
    "enablePayOut"?: boolean;
    /**
    * When true and `shopperReference` is provided, the payment details will be stored for [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types) where the shopper is not present, such as subscription or automatic top-up payments.
    */
    "enableRecurring"?: boolean;
    "enhancedSchemeData"?: EnhancedSchemeData | null;
    /**
    * The type of the entity the payment is processed for.
    */
    "entityType"?: PaymentRequest.EntityTypeEnum;
    /**
    * An integer value that is added to the normal fraud score. The value can be either positive or negative.
    */
    "fraudOffset"?: number;
    "fundOrigin"?: FundOrigin | null;
    "fundRecipient"?: FundRecipient | null;
    /**
    * The reason for the amount update. Possible values:  * **delayedCharge**  * **noShow**  * **installment**
    */
    "industryUsage"?: PaymentRequest.IndustryUsageEnum;
    "installments"?: Installments | null;
    /**
    * Price and product information about the purchased items, to be included on the invoice sent to the shopper. > This field is required for 3x 4x Oney, Affirm, Afterpay, Clearpay, Klarna, Ratepay, and Riverty.
    */
    "lineItems"?: Array<LineItem>;
    /**
    * The `localizedShopperStatement` field lets you use dynamic values for your shopper statement in a local character set. If this parameter is left empty, not provided, or not applicable (in case of cross-border transactions), then **shopperStatement** is used.  Currently, `localizedShopperStatement` is only supported for payments with Visa, Mastercard, JCB, Diners, and Discover.  **Supported characters**: Hiragana, Katakana, Kanji, and alphanumeric.
    */
    "localizedShopperStatement"?: {
        [key: string]: string;
    };
    "mandate"?: Mandate | null;
    /**
    * The [merchant category code](https://en.wikipedia.org/wiki/Merchant_category_code) (MCC) is a four-digit number, which relates to a particular market segment. This code reflects the predominant activity that is conducted by the merchant.
    */
    "mcc"?: string;
    /**
    * The merchant account identifier, with which you want to process the transaction.
    */
    "merchantAccount": string;
    /**
    * You can use this reference to link multiple transactions to one another (for example, to track order authorization rate).For each billing cycle, this reference should be unique. After the first authorized payment attempt, do not reuse the reference. If you use this parameter, include it in all of the payment requests that you make.   We strongly recommend that you: * Always include this parameter, so that you can benefit from linking payment requests to one another, in case of authorization retries.  * Additionally include the following parameters in the `additionalData` object: [`retry.orderAttemptNumber`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-additionalData-AdditionalDataRetry-retry-orderAttemptNumber), [`retry.chainAttemptNumber`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-additionalData-AdditionalDataRetry-retry-chainAttemptNumber), and [`retry.skipRetry`](https://docs.adyen.com/api-explorer/Checkout/latest/post/sessions#request-additionalData-AdditionalDataRetry-retry-skipRetry)
    */
    "merchantOrderReference"?: string;
    "merchantRiskIndicator"?: MerchantRiskIndicator | null;
    /**
    * Metadata consists of entries, each of which includes a key and a value. Limits: * Maximum 20 key-value pairs per request. When exceeding, the \"177\" error occurs: \"Metadata size exceeds limit\". * Maximum 20 characters per key. * Maximum 80 characters per value.
    */
    "metadata"?: {
        [key: string]: string;
    };
    "mpiData"?: ThreeDSecureData | null;
    "order"?: EncryptedOrderData | null;
    /**
    * When you are doing multiple partial (gift card) payments, this is the `pspReference` of the first payment. We use this to link the multiple payments to each other. As your own reference for linking multiple payments, use the `merchantOrderReference`instead.
    */
    "orderReference"?: string;
    /**
    * > Required for browser-based (`channel` **Web**) 3D Secure 2 transactions.Set this to the origin URL of the page where you are rendering the Drop-in/Component. Do not include subdirectories and a trailing slash.
    */
    "origin"?: string;
    "paymentMethod": PaymentRequestPaymentMethod;
    "paymentValidations"?: PaymentValidations | null;
    "platformChargebackLogic"?: PlatformChargebackLogic | null;
    /**
    * Date after which no further authorisations shall be performed. Only for 3D Secure 2.
    */
    "recurringExpiry"?: string;
    /**
    * Minimum number of days between authorisations. Only for 3D Secure 2.
    */
    "recurringFrequency"?: string;
    /**
    * Defines a recurring payment type. Required when creating a token to store payment details or using stored payment details. Allowed values: * `Subscription` – A transaction for a fixed or variable amount, which follows a fixed schedule. * `CardOnFile` – With a card-on-file (CoF) transaction, card details are stored to enable one-click or omnichannel journeys, or simply to streamline the checkout process. Any subscription not following a fixed schedule is also considered a card-on-file transaction. * `UnscheduledCardOnFile` – An unscheduled card-on-file (UCoF) transaction is a transaction that occurs on a non-fixed schedule and/or have variable amounts. For example, automatic top-ups when a cardholder\'s balance drops below a certain amount.
    */
    "recurringProcessingModel"?: PaymentRequest.RecurringProcessingModelEnum;
    /**
    * Specifies the redirect method (GET or POST) when redirecting back from the issuer.
    */
    "redirectFromIssuerMethod"?: string;
    /**
    * Specifies the redirect method (GET or POST) when redirecting to the issuer.
    */
    "redirectToIssuerMethod"?: string;
    /**
    * The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status. To provide multiple references for one transaction, separate the reference values with the hyphen (`-`) character.We strongly recommend that you use a unique value for each transaction. Maximum length: 80 characters.
    */
    "reference": string;
    /**
    * The URL to return to in case of a redirection. The format depends on the channel.  * For web, include the protocol `http://` or `https://`. You can also include your own additional query parameters, for example, shopper ID or order reference number. Example: `https://your-company.example.com/checkout?shopperOrder=12xy` * For iOS, use the custom URL for your app. To know more about setting custom URL schemes, refer to the [Apple Developer documentation](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app). Example: `my-app://` * For Android, use a custom URL handled by an Activity on your app. You can configure it with an [intent filter](https://developer.android.com/guide/components/intents-filters). Example: `my-app://your.package.name`  If the URL to return to includes non-ASCII characters, like spaces or special letters, URL encode the value. > The URL must not include personally identifiable information (PII), for example name or email address.
    */
    "returnUrl": string;
    "riskData"?: RiskData | null;
    /**
    * The date and time until when the session remains valid, in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.  For example: 2020-07-18T15:42:40.428+01:00
    */
    "sessionValidity"?: string;
    /**
    * A unique ID to [connect the shopper to a single checkout session](https://docs.adyen.com/online-payments/checkout-settings#checkout-shopper-conversion-id) that uses multiple API requests. You can use this to get insights into conversion rates.
    */
    "shopperConversionId"?: string;
    /**
    * The shopper\'s email address, in valid [RFC-5322](https://www.rfc-editor.org/rfc/rfc5322) format. We recommend that you provide this data, because it is used in velocity fraud checks. > Required for Visa and JCB transactions that require 3D Secure 2 authentication if you did not include the `telephoneNumber`.
    */
    "shopperEmail"?: string;
    /**
    * The shopper\'s IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). > Required for Visa and JCB transactions that require 3D Secure 2 authentication for all web and mobile integrations, if you did not include the `shopperEmail`. For native mobile integrations, the field is required to support cases where authentication is routed to the redirect flow. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new).
    */
    "shopperIP"?: string;
    /**
    * Specifies the sales channel, through which the shopper gives their card details, and whether the shopper is a returning customer. For the web service API, Adyen assumes Ecommerce shopper interaction by default.  This field has the following possible values: * `Ecommerce` - Online transactions where the cardholder is present (online). For better authorisation rates, we recommend sending the card security code (CSC) along with the request. * `ContAuth` - Card on file and/or subscription transactions, where the cardholder is known to the merchant (returning customer). If the shopper is present (online), you can supply also the CSC to improve authorisation (one-click payment). * `Moto` - Mail-order and telephone-order transactions where the shopper is in contact with the merchant via email or telephone. * `POS` - Point-of-sale transactions where the shopper is physically present to make a payment using a secure payment terminal.
    */
    "shopperInteraction"?: PaymentRequest.ShopperInteractionEnum;
    /**
    * The language for the payment. The value combines the two-letter [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) language code with the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) country code. For example, **nl-NL**.  When using Drop-in/Components, the specified language appears if your front-end global configuration does not set the `locale`.
    */
    "shopperLocale"?: string;
    "shopperName"?: ShopperName | null;
    /**
    * Required for recurring payments.  Your reference to uniquely identify this shopper, for example user ID or account ID. Minimum length: 3 characters. > Your reference must not include personally identifiable information (PII), for example name or email address.
    */
    "shopperReference"?: string;
    /**
    * The text to be shown on the shopper\'s bank statement.  We recommend sending a maximum of 22 characters, otherwise banks might truncate the string.  Allowed characters: **a-z**, **A-Z**, **0-9**, spaces, and special characters **. , \' _ - ? + * /_**.
    */
    "shopperStatement"?: string;
    "shopperTaxInfo"?: ShopperTaxInfo | null;
    /**
    * The shopper\'s social security number.
    */
    "socialSecurityNumber"?: string;
    /**
    * An array of objects specifying how to split a payment when using [Adyen for Platforms](https://docs.adyen.com/platforms/process-payments#providing-split-information), [Classic Platforms integration](https://docs.adyen.com/classic-platforms/processing-payments#providing-split-information), or [Issuing](https://docs.adyen.com/issuing/manage-funds#split).
    */
    "splits"?: Array<Split>;
    /**
    * Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment.
    */
    "store"?: string;
    /**
    * When true and `shopperReference` is provided, the payment details will be stored for future [recurring payments](https://docs.adyen.com/online-payments/tokenization/#recurring-payment-types).
    */
    "storePaymentMethod"?: boolean;
    /**
    * This field contains additional information on the submerchant, who is onboarded to an acquirer through a payment facilitator or aggregator
    */
    "subMerchants"?: Array<SubMerchantInfo>;
    "surcharge"?: Surcharge | null;
    /**
    * The shopper\'s telephone number.  The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits). If the value you provide does not follow the guidelines, we do not submit it for authentication. > Required for Visa and JCB transactions that require 3D Secure 2 authentication, if you did not include the `shopperEmail`.
    */
    "telephoneNumber"?: string;
    "threeDS2RequestData"?: ThreeDS2RequestFields | null;
    /**
    * Required to trigger the [authentication-only flow](https://docs.adyen.com/online-payments/3d-secure/authentication-only/). If set to **true**, you will only perform the 3D Secure 2 authentication, and will not proceed to the payment authorisation.Default: **false**.
    *
    * @deprecated since Adyen Checkout API v69
    * Use `authenticationData.authenticationOnly` instead.
    */
    "threeDSAuthenticationOnly"?: boolean;
    /**
    * Set to true if the payment should be routed to a trusted MID.
    */
    "trustedShopper"?: boolean;
    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 PaymentRequest {
    enum ChannelEnum {
        IOs = "iOS",
        Android = "Android",
        Web = "Web"
    }
    enum EntityTypeEnum {
        NaturalPerson = "NaturalPerson",
        CompanyName = "CompanyName"
    }
    enum IndustryUsageEnum {
        DelayedCharge = "delayedCharge",
        Installment = "installment",
        NoShow = "noShow"
    }
    enum RecurringProcessingModelEnum {
        CardOnFile = "CardOnFile",
        Subscription = "Subscription",
        UnscheduledCardOnFile = "UnscheduledCardOnFile"
    }
    enum ShopperInteractionEnum {
        Ecommerce = "Ecommerce",
        ContAuth = "ContAuth",
        Moto = "Moto",
        Pos = "POS"
    }
}
