/// import * as Money from 'js-money'; import IRequest from './IRequest'; import IResponse from './IResponse'; import IClient from '../http/IClient'; import CreditCard from '../CreditCard'; import ItemBag from './../ItemBag'; import { IObject } from '../interfaces'; export default abstract class AbstractRequest implements IRequest { [key: string]: any; readonly abstract data: any; protected _parameters: IObject; protected _client: IClient; protected _response: IResponse; protected _zeroAmountAllowed: boolean; protected _negativeAmountAllowed: boolean; readonly parameters: IObject; /** * Required fields for given request */ abstract requiredFields: string[]; readonly response: IResponse; protected readonly throwIfCantSet: any; testMode: boolean; card: CreditCard | IObject; token: string; cardReference: string; readonly currencies: string[]; readonly money: Money; amount: string; readonly amountInteger: number; description: string; currency: string; transactionId: number; transactionReference: string; items: ItemBag | IObject[]; clientIp: any; returnUrl: any; cancelUrl: any; notifyUrl: any; constructor(client: IClient); initialize(parameters?: IObject): this; validate(...keys: string[]): true; abstract send(): Promise; }