import { AzamPayInstance, AzamPayToken, ErrorResponse, PartnersResponse, PostCheckOutInterface, BankCheckout, CheckoutResponse, Disburse, DisburseResponse, MnoCheckout, NameLookup, NameLookupResponse, PostCheckOut, RequestOptions, TokenPayload, TransactionStatus, TransactionStatusResponse } from '../shared/interfaces/base.interface';
/**
 * @class Azam Pay request instance.
 */
export declare class AzamPay {
    private instance?;
    constructor(instance?: AzamPayInstance | undefined);
    private headers;
    /**
     * @method getToken A static method for getting token
     * @param payload Azam Pay request payload
     * @returns Access Token and Expiry time
     */
    static getToken: (payload: TokenPayload) => Promise<AzamPayToken | ErrorResponse>;
    /**
     * @method bankCheckout
     * @param payload BankCheckout Bank checkout and make payment to requested provider.
     * @param options Request options for any additional options or independent request methods.
     * @returns CheckoutResponse or ErrorResponse
     */
    bankCheckout: (payload: BankCheckout, options?: RequestOptions) => Promise<CheckoutResponse | ErrorResponse>;
    /**
     * @method mnoCheckout
     * @param payload BankCheckout Bank checkout and make payment to requested provider.
     * @param options Request options for any additional options or independent request methods.
     * @returns CheckoutResponse or ErrorResponse
     */
    mnoCheckout: (payload: MnoCheckout, options?: RequestOptions) => Promise<CheckoutResponse | ErrorResponse>;
    /**
     * @method postCheckout
     * @param payload Post checkout payload.
     * @param options Request options for any additional options or independent request methods.
     * @returns string or ErrorResponse
     */
    postCheckout: (payload: PostCheckOut, options?: RequestOptions) => Promise<PostCheckOutInterface | ErrorResponse>;
    /**
     * @method disburse
     * @param payload Disburse payload.
     * @param options Request options for any additional options or independent request methods.
     * @returns DisburseResponse or ErrorResponse
     */
    disburse: (payload: Disburse, options?: RequestOptions) => Promise<DisburseResponse | ErrorResponse>;
    /**
     * @method partners. A method used to retrieve payment partners from Azam Pay
     * @returns PartnersResponse
     */
    partners: (options?: RequestOptions) => Promise<PartnersResponse | ErrorResponse>;
    /**
     * @method nameLookup This API is used to lookup the name associated with a bank account or Mobile Money account.
     * @param payload NameLookup payload.
     * @param options Request options for any additional options or independent request methods.
     * @returns NameLookupResponse or ErrorResponse
     */
    nameLookup: (payload: NameLookup, options?: RequestOptions) => Promise<NameLookupResponse | ErrorResponse>;
    /**
     * @method disburse This method allows for the transfer of money from other countries to Tanzania. It requires the authorization token generated above, passed as a header in the request. The request should also contain details of the source, destination, and transfer details. Additionally, the request can include an external reference ID and remarks.
     * @param payload Disburse payload.
     * @param options Request options for any additional options or independent request methods.
     * @returns DisburseResponse or ErrorResponse
     */
    transactionStatus: (payload: TransactionStatus, options?: RequestOptions) => Promise<TransactionStatusResponse | ErrorResponse>;
    private getStatus;
    private getPartners;
    private getNameLookup;
    private getDisbursement;
    private getBankCheckout;
    private getMnoCheckout;
    private getPostCheckout;
}
