import { UTXOs } from '../bitcoin/UTXOs.js';
import { IProviderForUTXO } from './interfaces/IProviderForUTXO.js';
import { RequestMultipleUTXOsParams, RequestUTXOsParams, RequestUTXOsParamsWithAmount } from './interfaces/IUTXOsManager.js';
export declare class UTXOsManager {
    private readonly provider;
    private dataByAddress;
    constructor(provider: IProviderForUTXO);
    spentUTXO(address: string, spent: UTXOs, newUTXOs: UTXOs): void;
    getPendingUTXOs(address: string): UTXOs;
    clean(address?: string, threshold?: bigint): void;
    getUTXOs({ address, isCSV, optimize, mergePendingUTXOs, filterSpentUTXOs, olderThan, }: RequestUTXOsParams): Promise<UTXOs>;
    getUTXOsForAmount({ address, amount, csvAddress, optimize, mergePendingUTXOs, filterSpentUTXOs, throwErrors, olderThan, maxUTXOs, throwIfUTXOsLimitReached, }: RequestUTXOsParamsWithAmount): Promise<UTXOs>;
    getMultipleUTXOs({ requests, mergePendingUTXOs, filterSpentUTXOs, }: RequestMultipleUTXOsParams): Promise<Record<string, UTXOs>>;
    private selectUTXOsGreedily;
    private fetchMultipleUTXOs;
    private getAddressData;
    private maybeFetchUTXOs;
    private fetchUTXOs;
    private parseUTXO;
    private syncPendingDepthWithFetched;
}
