import { UTXO } from './types';
import { UtxoSelectionResult, UtxoSelectionPreferences } from './strategies';
/**
 * Enhanced UTXO selector with multiple strategies
 */
export declare class UtxoSelector {
    private strategies;
    constructor();
    static readonly DUST_THRESHOLD = 546;
    static readonly BYTES_PER_INPUT: 68;
    static readonly BYTES_PER_OUTPUT: 31;
    static readonly BASE_TX_SIZE: 10;
    /**
     * Select optimal UTXOs for a transaction
     */
    selectOptimal(utxos: UTXO[], targetValue: number, feeRate: number, preferences?: UtxoSelectionPreferences, extraOutputs?: number): UtxoSelectionResult;
    /**
     * Select the best result based on preferences
     */
    private selectBestResult;
    /**
     * Calculate a score for a result based on preferences
     */
    private calculateScore;
    /**
     * Validate inputs for UTXO selection
     */
    private validateInputs;
    /**
     * Validate that a result is correct
     */
    private isValidResult;
    /**
     * Calculate estimated transaction fee
     */
    static calculateFee(inputCount: number, outputCount: number, feeRate: number): number;
}
