import http = require("http");
import Promise = require("bluebird");
import { Authentication } from '../auth/Authentication';
import { AuthenticatedCardDataCreate } from '../models/AuthenticatedCardDataCreate';
import { TokenizedCardDataCreate } from '../models/TokenizedCardDataCreate';
import { Transaction } from '../models/Transaction';
declare class CardProcessingService {
    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;
    /**
    * The process method will process the transaction with the given card details without using 3-D secure.
    * @summary Process
    * @param spaceId
    * @param transactionId The ID of the transaction which should be processed.
    * @param paymentMethodConfigurationId The payment method configuration ID which is applied to the transaction.
    * @param cardData The card details as JSON in plain which should be used to authorize the payment.
    * @param {*} [options] Override http request options.
    */
    process(spaceId: number, transactionId: number, paymentMethodConfigurationId: number, cardData: AuthenticatedCardDataCreate, options?: any): Promise<{
        response: http.IncomingMessage;
        body: Transaction;
    }>;
    /**
    * The process method will process the transaction with the given card details by eventually using 3-D secure. The buyer has to be redirect to the URL returned by this method.
    * @summary Process With 3-D Secure
    * @param spaceId
    * @param transactionId The ID of the transaction which should be processed.
    * @param paymentMethodConfigurationId The payment method configuration ID which is applied to the transaction.
    * @param cardData The card details as JSON in plain which should be used to authorize the payment.
    * @param {*} [options] Override http request options.
    */
    processWith3DSecure(spaceId: number, transactionId: number, paymentMethodConfigurationId: number, cardData: TokenizedCardDataCreate, options?: any): Promise<{
        response: http.IncomingMessage;
        body: string;
    }>;
}
export { CardProcessingService };
