import { StateService, ConnectionService } from '../services';
export declare class SetlJWT {
    private hostname;
    private stateService;
    private connectionService;
    private token;
    /**
     *
     * @param hostname
     * @param apikey
     * @param userId
     */
    constructor(hostname: string, stateService: StateService, connectionService: ConnectionService);
    /**
     * Get Token
     */
    getToken(): Promise<void>;
    /**
     *
     * @param JWS
     */
    callWalletNode(JWS: any): Promise<unknown>;
    /**
     *
     * @param JWS
     */
    callMemberNode(JWS: any): Promise<unknown>;
    /**
     *
     * @param MsgRequest
     * @param apiKey
     */
    getJwsHs256(MsgRequest: any): any;
    /**
     *
     * @param thisJWS
     * @param apiKey
     */
    parseJws(thisJWS: any): any;
    /**
     *
     * @param thisJWS
     * @param thisSecret
     */
    verifyJws(thisJWS: any, thisSecret: any): boolean;
    /**
     *
     */
    private addDefaultPayloads;
    /**
     * Generate Random String for Request ID
     *
     * @param size
     */
    randomString(size?: number): string;
    /**
     * Call to Membernode / WalletNode
     *
     * @param payloadIn - object to send
     * @param requestType - {request,tx} switches between request and tx, default is request
     * @param endpoint - {wallet,member} switches between walletnode for member, default is wallet
     */
    call(payloadIn: any, requestType: any, endpoint: any): Promise<any>;
    /********************************************************

    All detailed calls below here currently not exposed but would work

    *******************************************************/
    getStatus(): Promise<any>;
    getMyUserDetails(): Promise<any>;
    getEncumber(): Promise<any>;
    getMyWalletList(): Promise<any>;
    newUser(account: any, username: any, email: any, userType: any, password: any): Promise<any>;
    newWallet(walletName: any, account: any, walletType: any): Promise<any>;
    updateUserWalletPermissions(userId: any, toAdd: {}, toUpdate: {}, toDelete: {}): Promise<any>;
    allGetDetails(): Promise<any>;
    getMyFundAccess(): Promise<any>;
    getMergers(): Promise<any>;
    getWalletDirectory(): Promise<any>;
    getWalletIDByAddr(address: any): Promise<any>;
    getCoupons(): Promise<any>;
    updateCoupon(couponID: any, status: any, amount: number, amountGross: number): Promise<any>;
    updateFundStatus(status: any, issuer: any, shareName: any): Promise<any>;
    getSplits(): Promise<any>;
    getOrders(dateOrder: any): Promise<any>;
    getOrdersFunds(orderId: any): Promise<any>;
    updateSplit(splitID: any, status: any, factor: number): Promise<any>;
    getMyWalletAccess(): Promise<any>;
    getContractsByWallet(walletID: any): Promise<any>;
    getWalletAddresses(walletId: any): Promise<any>;
    walletCommitToContract(walletID: any, data: any): Promise<any>;
    getUserIssuedList(): Promise<any>;
    voidAsset(walletID: any, namespace: any, instrument: any, fromAddr: any, toAddr: any, amount: any): Promise<any>;
    issueAsset(walletID: any, namespace: any, instrument: any, toAddr: any, amount: any): Promise<any>;
    getIssuedAssetBalance(walletID: any, data: any): Promise<any>;
    getIndexRate(indexID: any, startDate: any, endDate: any): Promise<any>;
    getWalletHoldings(walletID: any): Promise<any>;
    exenc(walletID: any, issuer: any, instrument: any, toAddr: any, fromAddr: any, amount: any): Promise<any>;
    getWalletInstruments(walletID: any): Promise<any>;
    getOrderByAddr(address: any, orderID: any): Promise<any>;
    updateOrderStatus(orderID: any, status: any, contractAddress: any): Promise<any>;
    getArrangementByContractAddr(walletID: any, contractAddress: any): Promise<any>;
    getAssetPrice(asset: any, navDate: any, status: any, pageNum: any, pageSize: any): Promise<any>;
    splitAsset(walletID: any, namespace: any, instrument: any, ratio: any): Promise<any>;
    newContract(walletID: any, address: any, contractData: any): Promise<any>;
    saveArrangement(walletID: any, type: any, metaData: any, quantity: any, parties: any, cutoff: any, delivery: any, valuation: any, asset: any): Promise<any>;
    addArrangementContractMap(walletID: any, arrangementID: any, contractAddress: any, expiry: any): Promise<any>;
    updateNav(asset: any, navDate: any, status: any, price: any): Promise<any>;
    updateArrangement(walletID: any, arrangementID: any, status: any, price: any): Promise<any>;
    updateMerger(mergerID: any, status: any, fundOldNav: number, fundNewNav: number): Promise<any>;
    sendMail(subject: any, body: any, walletID: any, walletPubkey: any, recipients: any, useComm?: boolean): Promise<any>;
    array_keys(myObject: any): any[];
    getWalletIDByManyAddresses(addresses: any): Promise<any>;
    unEncumberTx(walletID: any, data: any): Promise<any>;
}
