import { PrivateKey } from '@bsv/sdk'; import type { Utxo } from 'js-1sat-ord'; import type { IndexerService } from './service-providers/IndexerService.js'; /** * Result of UTXO splitting operation */ export interface UtxoSplitResult { /** Array of new UTXOs created from the split */ utxos: Utxo[]; /** Transaction ID of the split transaction */ txid: string; /** Total satoshis used (including fees) */ totalSats: number; } /** * Splits a single UTXO into multiple UTXOs for parallel inscription * * Creates a transaction that spends one large UTXO and outputs N UTXOs, * each with EXACT satoshis needed for its inscription (no change outputs). * * @param paymentKey - Private key for signing the split transaction * @param indexer - Indexer service for fetching UTXOs and broadcasting * @param outputCount - Number of UTXOs to create * @param satsPerOutput - Either a single number OR an array of exact satoshi amounts per output * @param satsPerKb - Fee rate for the split transaction * @param dryRun - If true, generates mock UTXOs without broadcasting * @param seedUtxo - Optional UTXO to use instead of fetching from indexer (avoids timing issues) * @param onProgress - Optional callback for progress updates * @returns Array of new UTXOs ready for parallel use */ export declare function splitUtxoForParallelInscription(paymentKey: PrivateKey, indexer: IndexerService, outputCount: number, satsPerOutput: number | number[], satsPerKb?: number, dryRun?: boolean, seedUtxo?: Utxo, onProgress?: (message: string) => void): Promise; /** * Splits UTXOs for batch parallel inscription of chunks * * Calculates required satoshis per chunk and creates enough UTXOs * for the specified batch size. * * @param paymentKey - Private key for signing * @param indexer - Indexer service * @param totalChunkCount - Total number of chunks to inscribe * @param avgChunkSize - Average chunk size in bytes * @param batchSize - Number of chunks to inscribe in parallel * @param satsPerKb - Fee rate * @param dryRun - Dry run mode * @returns Array of UTXO batches, each batch ready for parallel inscription */ export declare function splitUtxosForBatchChunking(paymentKey: PrivateKey, indexer: IndexerService, totalChunkCount: number, avgChunkSize: number, batchSize: number, satsPerKb?: number, dryRun?: boolean): Promise; //# sourceMappingURL=utxoSplitter.d.ts.map