import http = require("http");
import Promise = require("bluebird");
import { Authentication } from '../auth/Authentication';
import { ChargeAttempt } from '../models/ChargeAttempt';
import { PaymentAppChargeAttemptUpdateRequest } from '../models/PaymentAppChargeAttemptUpdateRequest';
import { PaymentAppCompletionUpdateRequest } from '../models/PaymentAppCompletionUpdateRequest';
import { PaymentAppConnector } from '../models/PaymentAppConnector';
import { PaymentAppConnectorCreationRequest } from '../models/PaymentAppConnectorCreationRequest';
import { PaymentAppProcessor } from '../models/PaymentAppProcessor';
import { PaymentAppProcessorCreationRequest } from '../models/PaymentAppProcessorCreationRequest';
import { PaymentAppRefundUpdateRequest } from '../models/PaymentAppRefundUpdateRequest';
import { PaymentAppVoidUpdateRequest } from '../models/PaymentAppVoidUpdateRequest';
import { Refund } from '../models/Refund';
import { TransactionCompletion } from '../models/TransactionCompletion';
import { TransactionVoid } from '../models/TransactionVoid';
declare class PaymentWebAppService {
    protected _basePath: string;
    protected _defaultHeaders: any;
    protected _useQuerystring: boolean;
    protected _timeout: number;
    protected _defaultAuthentication: Authentication;
    constructor(configuration: any);
    /**
    * Set timeout in seconds. Default timeout: 25 seconds
    * @param {number} timeout
    */
    set timeout(timeout: number);
    private setTimeout;
    set basePath(basePath: string);
    get basePath(): string;
    protected setDefaultAuthentication(auth: Authentication): void;
    private getVersion;
    /**
    * This operation marks the processor to be usable within the production environment.
    * @summary Activate Processor for Production
    * @param spaceId The space ID identifies the space in which the processor is installed in.
    * @param externalId The external ID identifies the processor. The external ID corresponds to the ID provided during inserting of the processor.
    * @param {*} [options] Override http request options.
    */
    activateProcessorForProduction(spaceId: number, externalId: string, options?: any): Promise<{
        response: http.IncomingMessage;
        body: PaymentAppProcessor;
    }>;
    /**
    * This operation removes the web app payment connector from the given space.
    * @summary Delete Connector
    * @param spaceId The space ID identifies the space in which the connector is installed in.
    * @param externalId The external ID identifies the connector. The external ID corresponds to the ID provided during inserting of the connector.
    * @param {*} [options] Override http request options.
    */
    deleteConnector(spaceId: number, externalId: string, options?: any): Promise<{
        response: http.IncomingMessage;
        body?: any;
    }>;
    /**
    * This operation removes the web app payment processor and its connectors from the given space.
    * @summary Delete Processor
    * @param spaceId The space ID identifies the space in which the processor is installed in.
    * @param externalId The external ID identifies the processor. The external ID corresponds to the ID provided during inserting of the processor.
    * @param {*} [options] Override http request options.
    */
    deleteProcessor(spaceId: number, externalId: string, options?: any): Promise<{
        response: http.IncomingMessage;
        body?: any;
    }>;
    /**
    * This operation inserts or updates a web app payment connector.
    * @summary Insert or Update Connector
    * @param spaceId The space ID identifies the space into which the connector should be inserted into.
    * @param request The connector object contains all the details required to create or update a web app connector.
    * @param {*} [options] Override http request options.
    */
    insertOrUpdateConnector(spaceId: number, request: PaymentAppConnectorCreationRequest, options?: any): Promise<{
        response: http.IncomingMessage;
        body: PaymentAppConnector;
    }>;
    /**
    * This operation inserts or updates a web app payment processor.
    * @summary Insert or Update Processor
    * @param spaceId The space ID identifies the space into which the processor should be inserted into.
    * @param request The processor object contains all the details required to create or update a web app processor.
    * @param {*} [options] Override http request options.
    */
    insertOrUpdateProcessor(spaceId: number, request: PaymentAppProcessorCreationRequest, options?: any): Promise<{
        response: http.IncomingMessage;
        body: PaymentAppProcessor;
    }>;
    /**
    * This operation updates the state of the charge attempt. This method can be invoked for transactions originally created with a processor associated with the web app that invokes this operation. The returned charge attempt corresponds to the charge attempt indicated in the request.
    * @summary Update Charge Attempt
    * @param spaceId This is the ID of the space in which the charge attempt is located in.
    * @param request The charge attempt update request allows to update the state of a charge attempt.
    * @param {*} [options] Override http request options.
    */
    updateChargeAttempt(spaceId: number, request: PaymentAppChargeAttemptUpdateRequest, options?: any): Promise<{
        response: http.IncomingMessage;
        body: ChargeAttempt;
    }>;
    /**
    * This operation updates the state of the transaction completion. This method can be invoked for transactions originally created with a processor associated with the web app that invokes this operation. The returned completion corresponds to the completion indicated in the request.
    * @summary Update Completion
    * @param spaceId This is the ID of the space in which the completion is located in.
    * @param request The completion update request allows to update the state of a completion.
    * @param {*} [options] Override http request options.
    */
    updateCompletion(spaceId: number, request: PaymentAppCompletionUpdateRequest, options?: any): Promise<{
        response: http.IncomingMessage;
        body: TransactionCompletion;
    }>;
    /**
    * This operation updates the state of the refund. This method can be invoked for transactions originally created with a processor associated with the web app that invokes this operation. The returned refund corresponds to the refund indicated in the request.
    * @summary Update Refund
    * @param spaceId This is the ID of the space in which the refund is located in.
    * @param request The refund update request allows to update the state of a refund.
    * @param {*} [options] Override http request options.
    */
    updateRefund(spaceId: number, request: PaymentAppRefundUpdateRequest, options?: any): Promise<{
        response: http.IncomingMessage;
        body: Refund;
    }>;
    /**
    * This operation updates the state of the transaction void. This method can be invoked for transactions originally created with a processor associated with the web app that invokes this operation. The returned void corresponds to the void indicated in the request.
    * @summary Update Void
    * @param spaceId This is the ID of the space in which the void is located in.
    * @param request The void update request allows to update the state of a void.
    * @param {*} [options] Override http request options.
    */
    updateVoid(spaceId: number, request: PaymentAppVoidUpdateRequest, options?: any): Promise<{
        response: http.IncomingMessage;
        body: TransactionVoid;
    }>;
}
export { PaymentWebAppService };
