/* tslint:disable:max-classes-per-file */
/* tslint:disable:variable-name */
/* tslint:disable:no-trailing-whitespace */
/* tslint:disable:no-consecutive-blank-lines */
/* tslint:disable:no-namespace */
/* tslint:disable:member-access */
/* tslint:disable:typedef-whitespace */
/* tslint:disable:no-internal-module */

declare module EVA.Payment.Adyen {
  
  export enum AdyenChannel {
    Web = 1,
    iOS = 2,
    Android = 3,
  }
  
  export class AdyenPaymentDetails extends EVA.API.RequestMessageGeneric<EVA.Payment.Adyen.AdyenPaymentDetailsResponse> {
    OrderID : number; // Int32
    PaymentTransactionID : number; // Int32
    Details : { [ key : string ] : string }; 
    PaymentData : string; 
    ThreeDSAuthenticationOnly : boolean; 
  }
  
  export class AdyenPaymentDetailsResponse extends EVA.API.ResponseMessage {
    RedirectUrl : string; 
    QrCode : string; 
    Data : any; 
  }
  
  export class ListAdyenCheckoutGatewaysResponseDetail {
    ID : string; 
    Type : string; 
    Items : EVA.Payment.Adyen.ListAdyenCheckoutGatewaysResponseItem[]; 
  }
  
  export class ListAdyenCheckoutGatewaysResponseGateway {
    ID : string; 
    Name : string; 
    Details : EVA.Payment.Adyen.ListAdyenCheckoutGatewaysResponseDetail[]; 
  }
  
  export class ListAdyenCheckoutGatewaysResponseItem {
    ID : string; 
    Name : string; 
  }
  
  export class ListAdyenCheckoutGateways extends EVA.API.RequestMessageGeneric<EVA.Payment.Adyen.ListAdyenCheckoutGatewaysResponse> {
    CurrencyID : string; 
    Amount : number; // Decimal
  }
  
  export class ListAdyenCheckoutGatewaysResponse extends EVA.API.ResponseMessage {
    Gateways : EVA.Payment.Adyen.ListAdyenCheckoutGatewaysResponseGateway[]; 
  }
  
}