import { IBTCProvider, UTXO } from '../core/types';
/**
 * Options for useUTXOs hook.
 */
export interface UseUTXOsOptions {
    /** Whether the query is enabled (default: true) */
    enabled?: boolean;
    /** Refetch interval for UTXOs in milliseconds */
    refetchInterval?: number;
    /** Base URL for ordinals API fallback */
    ordinalsApiUrl?: string;
    /** Whether to exclude inscription UTXOs from spendable balance (default: true) */
    ordinalsExcluded?: boolean;
}
/**
 * Raw UTXO from mempool API.
 */
export interface MempoolUTXO {
    txid: string;
    vout: number;
    value: number;
    status: {
        confirmed: boolean;
        block_height?: number;
        block_hash?: string;
        block_time?: number;
    };
}
/**
 * Result from useUTXOs hook.
 */
export interface UseUTXOsResult {
    /** All UTXOs (including unconfirmed) */
    allUTXOs: MempoolUTXO[];
    /** Only confirmed UTXOs (may include inscriptions) */
    confirmedUTXOs: MempoolUTXO[];
    /** Confirmed UTXOs without inscriptions (safe to spend) */
    availableUTXOs: UTXO[];
    /** Confirmed UTXOs that contain inscriptions */
    inscriptionUTXOs: UTXO[];
    /** Spendable UTXOs based on ordinalsExcluded preference */
    spendableUTXOs: UTXO[];
    /** Loading state (UTXOs) */
    isLoading: boolean;
    /** Loading state (ordinals detection) */
    isLoadingOrdinals: boolean;
    /** Error state (UTXOs) */
    error: Error | null;
    /** Error state (ordinals - non-blocking) */
    ordinalsError: Error | null;
    /** Refetch function */
    refetch: () => Promise<unknown>;
}
/**
 * React hook to fetch UTXOs for a Bitcoin address.
 *
 * Fetches UTXOs from mempool API and filters out inscription UTXOs.
 * Returns spendableUTXOs based on ordinalsExcluded preference.
 *
 * @param btcAddress - Bitcoin address to fetch UTXOs for
 * @param mempoolApiUrl - URL for mempool API
 * @param btcProvider - BTC wallet provider (optional, for getInscriptions method)
 * @param options - Hook options
 * @returns Object containing UTXOs, loading state, error state, and refetch function
 */
export declare function useUTXOs(btcAddress: string | undefined, mempoolApiUrl: string, btcProvider: IBTCProvider | undefined | null, options?: UseUTXOsOptions): UseUTXOsResult;
/**
 * Calculate total balance from UTXOs.
 *
 * Sums up the value of all provided UTXOs to get total balance in satoshis.
 *
 * @param utxos - Array of UTXOs
 * @returns Total balance in satoshis
 */
export declare function calculateBalance(utxos: Array<{
    value: number;
}>): number;
