import type { AddressCreate } from './AddressCreate';
import type { LineItemCreate } from './LineItemCreate';
import type { TokenizationMode } from './TokenizationMode';
import type { TransactionCompletionBehavior } from './TransactionCompletionBehavior';
/**
 *
 * @export
 * @interface AbstractTransactionPending
 */
export interface AbstractTransactionPending {
    /**
     * The customer's email address.
     * @type {string}
     * @memberof AbstractTransactionPending
     */
    customerEmailAddress?: string;
    /**
     * The name of the shipping method used to ship the products.
     * @type {string}
     * @memberof AbstractTransactionPending
     */
    shippingMethod?: string;
    /**
     * The merchant's reference used to identify the invoice.
     * @type {string}
     * @memberof AbstractTransactionPending
     */
    invoiceMerchantReference?: string;
    /**
     * The URL to redirect the customer back to after they successfully authenticated their payment.
     * @type {string}
     * @memberof AbstractTransactionPending
     */
    successUrl?: string;
    /**
     * The customer's time zone, which affects how dates and times are formatted when communicating with the customer.
     * @type {string}
     * @memberof AbstractTransactionPending
     */
    timeZone?: string;
    /**
     * The language that is linked to the object.
     * @type {string}
     * @memberof AbstractTransactionPending
     */
    language?: string;
    /**
     *
     * @type {TokenizationMode}
     * @memberof AbstractTransactionPending
     */
    tokenizationMode?: TokenizationMode;
    /**
     * The payment method brands that can be used to authorize the transaction.
     * @type {Array<number>}
     * @memberof AbstractTransactionPending
     */
    allowedPaymentMethodBrands?: Array<number>;
    /**
     *
     * @type {TransactionCompletionBehavior}
     * @memberof AbstractTransactionPending
     */
    completionBehavior?: TransactionCompletionBehavior;
    /**
     * The payment token that should be used to charge the customer.
     * @type {number}
     * @memberof AbstractTransactionPending
     */
    token?: number;
    /**
     * The line items purchased by the customer.
     * @type {Array<LineItemCreate>}
     * @memberof AbstractTransactionPending
     */
    lineItems?: Array<LineItemCreate>;
    /**
     * Allow to store additional information about the object.
     * @type {{ [key: string]: string; }}
     * @memberof AbstractTransactionPending
     */
    metaData?: {
        [key: string]: string;
    };
    /**
     * The unique identifier of the customer in the external system.
     * @type {string}
     * @memberof AbstractTransactionPending
     */
    customerId?: string;
    /**
     *
     * @type {AddressCreate}
     * @memberof AbstractTransactionPending
     */
    shippingAddress?: AddressCreate;
    /**
     * The three-letter code (ISO 4217 format) of the transaction's currency.
     * @type {string}
     * @memberof AbstractTransactionPending
     */
    currency?: string;
    /**
     *
     * @type {AddressCreate}
     * @memberof AbstractTransactionPending
     */
    billingAddress?: AddressCreate;
    /**
     * The merchant's reference used to identify the transaction.
     * @type {string}
     * @memberof AbstractTransactionPending
     */
    merchantReference?: string;
    /**
     * The payment method configurations that can be used to authorize the transaction.
     * @type {Array<number>}
     * @memberof AbstractTransactionPending
     */
    allowedPaymentMethodConfigurations?: Array<number>;
    /**
     * The URL to redirect the customer back to after they canceled or failed to authenticated their payment.
     * @type {string}
     * @memberof AbstractTransactionPending
     */
    failedUrl?: string;
}
/**
 * Check if a given object implements the AbstractTransactionPending interface.
 */
export declare function instanceOfAbstractTransactionPending(value: object): value is AbstractTransactionPending;
export declare function AbstractTransactionPendingFromJSON(json: any): AbstractTransactionPending;
export declare function AbstractTransactionPendingFromJSONTyped(json: any, ignoreDiscriminator: boolean): AbstractTransactionPending;
export declare function AbstractTransactionPendingToJSON(json: any): AbstractTransactionPending;
export declare function AbstractTransactionPendingToJSONTyped(value?: AbstractTransactionPending | null, ignoreDiscriminator?: boolean): any;
