import { BaseRequestResponse } from "../types/base/request";
import { BaseVerifyResponse } from "../types/base/verify";
import { BaseInquiryResponse } from "../types/base/inquiry";
import { ZarinpalRequestOptions, ZarinpalRequestResponseExtraData } from "../types/zarinpal";
import { NovinpalRequestOptions, NovinpalRequestResponseExtraData } from "../types/novinpal";
import { ZibalRequestOptions, ZibalRequestResponseExtraData } from "../types/zibal";
import { ZarinpalVerifyOptions, ZarinpalVerifyPaymentResponseExtraData } from "../types/zarinpal/verify";
import { NovinpalVerifyOptions, NovinpalVerifyPaymentResponseExtraData } from "../types/novinpal/verify";
import { ZibalVerifyOptions, ZibalVerifyPaymentResponseExtraData } from "../types/zibal/verify";
import { ZibalInquiryOptions } from "../types/zibal/inquiry";
import { ZarinpalInquiryOptions } from "../types/zarinpal/inquiry";
import { ZarinpalInquiryResponseExtraData } from "../types/zarinpal/inquiry";
import { ZibalInquiryResponseExtraData } from "../types/zibal/inquiry";
import { Payment4RequestResponseExtraData } from "../types/payment4/request";
import { Payment4RequestOptions } from "../types/payment4/request";
import { Payment4VerifyOptions, Payment4VerifyResponseExtraData } from "../types/payment4/verify";
export declare class EasypayService {
    private strategy;
    request(options: {
        driver: "ZARINPAL";
        options: ZarinpalRequestOptions;
    }): Promise<BaseRequestResponse<ZarinpalRequestResponseExtraData>>;
    request(options: {
        driver: "ZIBAL";
        options: ZibalRequestOptions;
    }): Promise<BaseRequestResponse<ZibalRequestResponseExtraData>>;
    request(options: {
        driver: "NOVINPAL";
        options: NovinpalRequestOptions;
    }): Promise<BaseRequestResponse<NovinpalRequestResponseExtraData>>;
    request(options: {
        driver: "PAYMENT4";
        options: Payment4RequestOptions;
    }): Promise<BaseRequestResponse<Payment4RequestResponseExtraData>>;
    verify(options: {
        driver: "ZARINPAL";
        options: ZarinpalVerifyOptions;
    }): Promise<BaseVerifyResponse<ZarinpalVerifyPaymentResponseExtraData>>;
    verify(options: {
        driver: "ZIBAL";
        options: ZibalVerifyOptions;
    }): Promise<BaseVerifyResponse<ZibalVerifyPaymentResponseExtraData>>;
    verify(options: {
        driver: "NOVINPAL";
        options: NovinpalVerifyOptions;
    }): Promise<BaseVerifyResponse<NovinpalVerifyPaymentResponseExtraData>>;
    verify(options: {
        driver: "PAYMENT4";
        options: Payment4VerifyOptions;
    }): Promise<BaseVerifyResponse<Payment4VerifyResponseExtraData>>;
    inquiry(options: {
        driver: "ZARINPAL";
        options: ZarinpalInquiryOptions;
    }): Promise<BaseInquiryResponse<ZarinpalInquiryResponseExtraData>>;
    inquiry(options: {
        driver: "ZIBAL";
        options: ZibalInquiryOptions;
    }): Promise<BaseInquiryResponse<ZibalInquiryResponseExtraData>>;
    private setStrategyBasedOnDriver;
}
