import { BitcoinRpcClient } from "./rpc";
import { UTXO } from "../types/bitcoin";
/**
 * Service for Bitcoin wallet operations
 */
export declare class BitcoinService {
    readonly rpc: BitcoinRpcClient;
    private readonly network;
    constructor(rpc: BitcoinRpcClient, isRegtest?: boolean);
    /**
     * Create a new wallet
     */
    createWallet(name: string, options?: {
        disablePrivateKeys?: boolean;
        blank?: boolean;
        descriptorWallet?: boolean;
    }): Promise<any>;
    /**
     * Get info about a wallet
     */
    getWalletInfo(wallet: string): Promise<any>;
    /**
     * Generate a new address from a wallet
     */
    getNewAddress(wallet: string, label?: string): Promise<string>;
    /**
     * Get detailed info about an address
     */
    getAddressInfo(wallet: string, address: string): Promise<any>;
    /**
     * List wallets on the node
     */
    listWallets(): Promise<string[]>;
    /**
     * List unspent outputs for an address or wallet
     */
    listUnspent(wallet: string, addresses?: string[]): Promise<UTXO[]>;
    /**
     * Get transaction details
     */
    getTransaction(wallet: string, txid: string): Promise<any>;
    /**
     * Send to address
     */
    sendToAddress(wallet: string, address: string, amount: number): Promise<string>;
    /**
     * Create a wallet with a known private key (for testing)
     */
    createPrivateKeyWallet(name: string, wif?: string): Promise<{
        wallet: string;
        wif: string;
        address: string;
    }>;
    /**
     * Generate an extended public key from wallet
     */
    getExtendedPubKey(wallet: string, path?: string): Promise<{
        xpub: string;
        path: string;
        rootFingerprint?: string;
    }>;
    /**
     * Create a software wallet for use in Caravan multisig
     */
    createCaravanKeyWallet(name: string, path?: string): Promise<{
        wallet: string;
        xpub: string;
        path: string;
        rootFingerprint: string;
        wif?: string;
    }>;
    /**
     * Extract private key for address
     */
    dumpPrivateKey(wallet: string, address: string): Promise<string>;
    /**
     * Generate blocks to a specific address
     */
    generateToAddress(numBlocks: number, address: string): Promise<string[]>;
}
