import { InscriptionIdentifier, UTXO } from '../core/types';
/** Default threshold for filtering dust UTXOs (10,000 sats) */
export declare const LOW_VALUE_UTXO_THRESHOLD = 10000;
/**
 * Filter out dust UTXOs below a value threshold.
 *
 * @param utxos - Array of UTXOs to filter
 * @param threshold - Minimum value in satoshis (default: 10,000)
 * @returns UTXOs above the threshold
 */
export declare function filterDust(utxos: UTXO[], threshold?: number): UTXO[];
/**
 * Create a lookup map from inscription identifiers for O(1) lookup.
 *
 * @param inscriptions - Array of inscription identifiers
 * @returns Map of "txid:vout" -> inscription
 */
export declare function createInscriptionMap(inscriptions: InscriptionIdentifier[]): Map<string, InscriptionIdentifier>;
/**
 * Check if a UTXO contains an inscription.
 *
 * @param utxo - UTXO to check
 * @param inscriptionMap - Map of inscription identifiers
 * @returns true if UTXO contains an inscription
 */
export declare function isInscriptionUtxo(utxo: UTXO, inscriptionMap: Map<string, InscriptionIdentifier>): boolean;
/**
 * Result of filtering UTXOs by inscriptions.
 */
export interface FilteredUtxos {
    /** UTXOs that do not contain inscriptions (safe to spend) */
    availableUtxos: UTXO[];
    /** UTXOs that contain inscriptions (should be protected) */
    inscriptionUtxos: UTXO[];
}
/**
 * Separate UTXOs into available (no inscriptions) and inscription UTXOs.
 *
 * @param utxos - Array of UTXOs to filter
 * @param inscriptions - Array of inscription identifiers
 * @returns Object with availableUtxos and inscriptionUtxos
 */
export declare function filterInscriptionUtxos(utxos: UTXO[], inscriptions: InscriptionIdentifier[]): FilteredUtxos;
/**
 * Get available UTXOs for spending (no inscriptions, above dust threshold).
 *
 * Convenience function that combines dust filtering and inscription filtering.
 *
 * @param utxos - Array of UTXOs
 * @param inscriptions - Array of inscription identifiers
 * @param dustThreshold - Minimum value threshold (default: 10,000 sats)
 * @returns UTXOs safe for spending
 */
export declare function getSpendableUtxos(utxos: UTXO[], inscriptions: InscriptionIdentifier[], dustThreshold?: number): UTXO[];
