import { P24Options } from './P24Options';
import { Order, Transaction } from '../orders';
import { CardNotificationRequest, NotificationRequest, Verification } from '../verify';
import { RefundRequest, RefundResult } from '../refund';
import { GetTransactionData } from "../orders/GetTransaction";
import { ChargeCardRequest, ChargeCardResult } from "../chargeCard";
/**
 * Represents a P24 payment system
 *
 * @export
 * @class P24
 */
export declare class P24 {
    private client;
    private readonly baseUrl;
    private options;
    private readonly baseParameters;
    private isValidP24Options;
    /**
     * Creates an instance of Przelewy24.
     * @param {P24Options} [options={ sandbox: false }] - all necessary options
     * @memberof P24
     */
    constructor(options?: P24Options);
    /**
     * Test access to the service
     *
     * @returns {Promise<boolean>}
     * @throws {P24Error}
     * @memberof P24
     */
    testAccess(): Promise<boolean>;
    /**
     * Creates a transaction
     *
     * @param {Order} order - order to be created
     * @returns {Promise<Transaction>}
     * @throws {P24Error}
     * @memberof P24
     */
    createTransaction(order: Order): Promise<Transaction>;
    /**
     * Verify transaction
     *
     * @param {Verification} verification - verification request
     * @returns {Promise<boolean>}
     * @throws {P24Error}
     * @memberof P24
     */
    verifyTransaction(verification: Verification): Promise<boolean>;
    /**
     * Get information about the transaction
     *
     * @param {sessionId} sessionId of transaction
     * @returns {Promise<GetTransactionData>}
     * @throws {P24Error}
     * @memberof P24
     */
    getTransaction(sessionId: string): Promise<GetTransactionData>;
    /**
     * Verify transaction notification with CRC Key. Doesn't work with card/BLIK notifications - use appropriate methods
     *
     * @param {NotificationRequest} notificationRequest
     * @returns {boolean}
     * @memberof P24
     */
    verifyNotification(notificationRequest: NotificationRequest): boolean;
    /**
     *  Verify card notification with CRC Key. Doesn't work with BLIK notifications - use the appropriate method
     *
     *  @param {CardNotificationRequest} notificationRequest
     *  @returns {boolean}
     *  @memberof P24
     */
    verifyCardNotification(notificationRequest: CardNotificationRequest): boolean;
    /**
     * Handle refund
     *
     * @param {RefundRequest} refundRequest
     * @returns {Promise<RefundResult[]>}
     * @memberof P24
     */
    refund(refundRequest: RefundRequest): Promise<RefundResult[]>;
    /**
     * Charge card using order token
     *
     * @param {ChargeCardRequest} chargeCardRequest
     * @returns {Promise<ChargeCardResult>}
     * @memberof P24
     */
    chargeCard(chargeCardRequest: ChargeCardRequest): Promise<ChargeCardResult>;
    /**
     * Validates IP with P24 backends
     *
     * @static
     * @param {string} ip - IP Address
     * @returns {boolean} - true on validated ip
     * @memberof P24
     */
    static isIpValid(ip: string): boolean;
}
//# sourceMappingURL=P24.d.ts.map