interface IrisOptions {
    isProduction?: boolean;
    serverKey: string;
    clientKey: string;
}
interface RequestParameters {
    [key: string]: any;
}
declare class Iris {
    private apiConfig;
    private httpClient;
    private transaction;
    /**
     * Initiate with options
     * @param  {IrisOptions} options - should have these props: isProduction, serverKey
     */
    constructor(options?: IrisOptions);
    /**
     * Do `/ping` API request to Iris API
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    ping(): Promise<any>;
    /**
     * Do create `/beneficiaries` API request to Iris API
     * @param  {RequestParameters} parameter - object of Iris API JSON body as parameter
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    createBeneficiaries(parameter?: RequestParameters): Promise<any>;
    /**
     * Do update `/beneficiaries/<alias_name>` API request to Iris API
     * @param  {string} aliasName - alias_name of the beneficiaries that need to be updated
     * @param  {RequestParameters} parameter - object of Iris API JSON body as parameter
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    updateBeneficiaries(aliasName: string, parameter?: RequestParameters): Promise<any>;
    /**
     * Do `/beneficiaries` API request to Iris API
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    getBeneficiaries(): Promise<any>;
    /**
     * Do create `/payouts` API request to Iris API
     * @param  {RequestParameters} parameter - object of Iris API JSON body as parameter
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    createPayouts(parameter?: RequestParameters): Promise<any>;
    /**
     * Do approve `/payouts/approve` API request to Iris API
     * @param  {RequestParameters} parameter - object of Iris API JSON body as parameter
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    approvePayouts(parameter?: RequestParameters): Promise<any>;
    /**
     * Do reject `/payouts/reject` API request to Iris API
     * @param  {RequestParameters} parameter - object of Iris API JSON body as parameter
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    rejectPayouts(parameter?: RequestParameters): Promise<any>;
    /**
     * Do `/payouts/<reference_no>` API request to Iris API
     * @param  {string} referenceNo - reference_no of the payout
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    getPayoutDetails(referenceNo: string): Promise<any>;
    /**
     * Do `/statements` API request to Iris API
     * @param {RequestParameters} parameter - Optional parameters for the request
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    getTransactionHistory(parameter?: RequestParameters): Promise<any>;
    /**
     * Do `/channels` API request to Iris API
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    getTopupChannels(): Promise<any>;
    /**
     * Do `/balance` API request to Iris API
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    getBalance(): Promise<any>;
    /**
     * Do `/bank_accounts` API request to Iris API
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    getFacilitatorBankAccounts(): Promise<any>;
    /**
     * Do `/bank_accounts/<bank_account_id>/balance` API request to Iris API
     * @param  {string} bankAccountId - bank_account_id of the bank account
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    getFacilitatorBalance(bankAccountId: string): Promise<any>;
    /**
     * Do `/beneficiary_banks` API request to Iris API
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    getBeneficiaryBanks(): Promise<any>;
    /**
     * Do `/account_validation` API request to Iris API
     * @param  {RequestParameters} parameter - object of Iris API JSON body as parameter
     * @return {Promise} - Promise contains Object from JSON decoded response
     */
    validateBankAccount(parameter?: RequestParameters): Promise<any>;
}
export default Iris;
