import { AuthorizeCardPaymentRequestPayload, CardPaymentRequestPayload, GetBanksResponse, GetMerchantPlanDetail, GetPaymentRateParams, PaymentRequestPayload, PaymentResponseData, Rate, UssdPaymentRequestPayload, ValidateCardPaymentRequestPayload } from '../types/types';

type Props = {
    token: string;
    rdtCode?: string;
    url?: string;
};
export declare class BaseService {
    protected token: string;
    protected baseurl: string;
    protected headers: Headers;
    protected rdtCode?: string;
    protected url?: string;
    constructor(props: Props);
    protected getHeaders: (token: string, rdtCode?: string) => Headers;
}
type PaymentServiceProps = Props;
export type PaymentAPIResponse = {
    data: PaymentResponseData;
    headers: Headers;
};
export declare class PaymentService extends BaseService {
    constructor(props: PaymentServiceProps);
    createCardPayment(payload: CardPaymentRequestPayload): Promise<PaymentResponseData>;
    createUssdPayment(payload: UssdPaymentRequestPayload): Promise<PaymentAPIResponse>;
    validateCardPayment(payload: ValidateCardPaymentRequestPayload): Promise<PaymentResponseData>;
    authorizeCardPayment(payload: AuthorizeCardPaymentRequestPayload): Promise<PaymentResponseData>;
    createTransferPayment(payload: PaymentRequestPayload): Promise<PaymentResponseData>;
    verifyPayment(reference: string, signal?: AbortSignal): Promise<PaymentAPIResponse>;
}
type RateServiceProps = Props;
export declare class RateService extends BaseService {
    constructor(props: RateServiceProps);
    getRate(payload: GetPaymentRateParams): Promise<Rate>;
}
type MerchantConfigServiceProps = Props;
export declare class MerchantConfigService extends BaseService {
    constructor(props: MerchantConfigServiceProps);
    /**
     *
     * @param planId this is the planId for the subscriptions
     * @returns {Promise<GetMerchantPlanDetail>}
     */
    getMerchantConfig(planId: string, currency: string): Promise<GetMerchantPlanDetail>;
}
type BankServiceProps = Props;
export declare class BankService extends BaseService {
    constructor(props: BankServiceProps);
    getBankList(): Promise<GetBanksResponse>;
}
export {};
