/* 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.DocumentSigning {
  
  export class CompleteSignDocumentTask extends EVA.API.RequestMessageGeneric<EVA.API.EmptyResponseMessage> {
    TaskID : number; // Int32
    Location : string; 
    Signatures : EVA.DocumentSigning.Signature[]; 
  }
  
  export enum Fields {
    Signature = 0,
    Name = 1,
    Date = 2,
    Place = 3,
    Image = 4,
  }
  
  export class GetOrderSignature extends EVA.API.RequestMessageWithResourceResponse {
    OrderID : number; // Int32
  }
  
  export class GetSigningCodeForOrder extends EVA.API.RequestMessageGeneric<EVA.DocumentSigning.GetSigningCodeForOrderResponse> {
    OrderID : number; // Int32
  }
  
  export class GetSigningCodeForOrderResponse extends EVA.API.ResponseMessage {
    Code : string; 
    IsAlreadySigned : boolean; 
  }
  
  export class GetSigningDataForOrder extends EVA.API.RequestMessageGeneric<EVA.DocumentSigning.GetSigningDataForOrderResponse> {
    Hash : string; 
  }
  
  export class GetSigningDataForOrderResponse extends EVA.API.ResponseMessage {
    OrderID : number; // Int32
    CustomerReference : string; 
    CreationTime : string; // DateTime
    ShippingAddress : EVA.Core.AddressDto; 
    CustomerName : string; 
    CustomerPhonenumber : string; 
    CustomerEmailAddress : string; 
    ItemCount : number; // Int32
    TotalAmount : number; // Decimal
    TotalAmountInTax : number; // Decimal
    CurrencyID : string; 
    IsAlreadySigned : boolean; 
  }
  
  export class Signature {
    Description : string; 
    SignatureData : string; 
    SignatureHash : string; 
    SignatureText : string; 
  }
  
  export class SignOrder extends EVA.API.RequestMessageWithEmptyResponse {
    OrderID? : number; // Int32, nullable
    Hash : string; 
    Signature : string; 
    MimeType : string; 
  }
  
  export class StartSignDocumentResponse extends EVA.API.ResponseMessage {
    WorkSet : EVA.DocumentSigning.StartSignDocumentWorkSet; 
  }
  
  export class StartSignDocumentTask extends EVA.API.RequestMessageGeneric<EVA.DocumentSigning.StartSignDocumentResponse> {
    TaskID? : number; // Int32, nullable
    OrderLineID? : number; // Int32, nullable
  }
  
  export class StartSignDocumentWorkSet {
    DocumentID : string; 
    DocumentUrl : string; 
    SignatureHashSalt : string; 
    UserTaskID : number; // Int32
    Signatures : EVA.DocumentSigning.Signature[]; 
  }
  
}