import { UTXO } from '../../interfaces/UTXO';
import * as constants from '../../common/constants';
/**
 * Generate Bitcoin wallet
 * @param testnet testnet or mainnet version of address
 * @param mnemonic mnemonic seed to use
 * @returns wallet
 */
export declare const generateWallet: (testnet: constants.NetworkType, mnemonic: string) => Promise<{
    mnemonic: string;
    accountExtPubkey: string;
    accountExtPrivatekey: string;
    bip32ExtPubkey: string;
    bip32ExtPrivatekey: string;
}>;
/**
 * Generate Bitcoin address from mnemonic
 * @param testnet testnet or mainnet version of address
 * @param mnemonic mnemonic seed to use
 * @param i derivation index of address to generate. Up to 2^31 addresses can be generated.
 * @returns blockchain address
 */
export declare const generateAddressFromMnemonic: (testnet: constants.NetworkType, mnemonic: string, i: number) => Promise<string>;
/**
 * Convert Bitcoin Private Key to Address
 * @param testnet testnet or mainnet version of address
 * @param privkey private key to use
 * @returns blockchain address
 */
export declare const generateAddressFromPrivatekey: (testnet: constants.NetworkType, privkey: string) => string;
/**
 * Generate Bitcoin private key from mnemonic seed
 * @param testnet testnet or mainnet version of address
 * @param mnemonic mnemonic to generate private key from
 * @param i derivation index of private key to generate.
 * @returns blockchain private key to the address
 */
export declare const generatePrivateKeyFromMnemonic: (testnet: constants.NetworkType, mnemonic: string, i: number) => Promise<string>;
/**
 * Generate address from xpub
 * @param currency type of blockchain
 * @param testnet testnet or mainnet version of address
 * @param xpub extended public key to generate address from
 * @param i derivation index of address to generate. Up to 2^31 addresses can be generated.
 * @returns blockchain address
 */
export declare const generateAddressFromXPub: (testnet: constants.NetworkType, xpub: string, i: number) => string;
/**
 * Check bitcoin address is valid
 * @param testnet testnet or mainnet version of address
 * @param address bitcoin address
 * @returns true || false
 */
export declare const isValidAddress: (testnet: constants.NetworkType, address: string) => boolean;
/**
 * Sign bitcoin tx offline
 * @param testnet testnet or mainnet version of address
 * @param outputs transaction outputs
 * @param privateKey sender private key
 * @param toAddress receiver
 * @param valueInBtc valut in btc
 * @returns rawTx
 */
export declare const signTxOffline: (testnet: constants.NetworkType, outputs: UTXO[], privateKey: string, toAddress: string, valueInBtc: number, changeAddress?: string | undefined) => string;
export declare const getNetwork: (testnet: constants.NetworkType) => import("bitcoinjs-lib").Network;
export declare const getPath: (testnet: constants.NetworkType) => "m/44'/1'/0'/0" | "m/44'/3'/0'/0";
