import { MonetaryAmount } from "@interlay/monetary-js";
import Big from "big.js";
import { WrappedCurrency } from "../types";
declare const Client: any;
interface RecipientsToUTXOAmounts {
    [key: string]: string;
}
export declare class BitcoinCoreClient {
    client: typeof Client;
    /**
     * Initialize the Bitcoin-core client, which is a js equivalent to bitcoin-cli
     * @param network Bitcoin network (mainnet, testnet, regtest)
     * @param host URL of Bitcoin node (e.g. localhost)
     * @param username User for RPC authentication
     * @param password Password for RPC authentication
     * @param port Bitcoin node connection port (e.g. 18443)
     * @param wallet Wallet to use if several are available. See https://github.com/ruimarinho/bitcoin-core#multiwallet
     */
    constructor(network: string, host: string, username: string, password: string, port: string, wallet: string);
    sendBtcTxAndMine(recipient: string, amount: MonetaryAmount<WrappedCurrency>, blocksToMine: number, data?: string): Promise<{
        txid: string;
        rawTx: string;
    }>;
    formatRawTxInput(recipient: string, amount: Big, data?: string): RecipientsToUTXOAmounts[];
    broadcastTx(recipient: string, amount: MonetaryAmount<WrappedCurrency>, data?: string): Promise<{
        txid: string;
        rawTx: string;
    }>;
    mineBlocks(n: number): Promise<void>;
    getBalance(): Promise<string>;
    sendToAddress(address: string, amount: MonetaryAmount<WrappedCurrency>): Promise<string>;
    getMempoolInfo(): Promise<any>;
    getBestBlockHash(): Promise<string>;
    createWallet(name: string): Promise<void>;
    loadWallet(name: string): Promise<void>;
}
export {};
