import type { TxInput, TxPaymentOutput } from "@neuraiproject/neurai-create-transaction";
import { Wallet } from "../neuraiWallet";
import { ChainType, IUTXO } from "../Types";
export declare const SATS_PER_XNA = 100000000;
export declare function xnaToSats(xna: number): bigint;
export declare function satsToXna(sats: bigint | number): number;
export declare function isPQAddress(address: string): boolean;
export declare function isPQUTXO(utxo: IUTXO): boolean;
export declare function utxoKey(utxo: {
    txid: string;
    outputIndex: number;
}): string;
export declare function buildUTXOMap(utxos: IUTXO[]): Map<string, IUTXO>;
export declare function selectUTXOs(utxos: IUTXO[], assetName: string, amount: number): IUTXO[];
export declare function estimateSizeKB(inputs: IUTXO[], outputAddresses: string[]): number;
export declare function getFeeRate(wallet: Wallet): Promise<number>;
export declare function utxosToTxInputs(utxos: IUTXO[]): TxInput[];
export declare function paymentsToTxOutputs(payments: Record<string, number>): TxPaymentOutput[];
export declare function buildPrivateKeyMap(wallet: Wallet, utxos: IUTXO[], forcedExtras?: Array<{
    address: string;
    privateKey: unknown;
}>): Record<string, unknown>;
export declare function signRawTransaction(network: ChainType, rawTxHex: string, utxos: IUTXO[], privateKeys: Record<string, unknown>): string;
export declare function broadcastSignedTransaction(wallet: Wallet, signedHex: string): Promise<string>;
export interface LoadedFunds {
    utxos: IUTXO[];
    feeRate: number;
}
/**
 * Load all spendable UTXOs (XNA + assets, including unspent mempool entries)
 * plus the current fee rate. Mirrors the discovery the old SendManyTransaction
 * did during loadData(), centralised so any builder can reuse it.
 */
export declare function loadSpendableFunds(wallet: Wallet, forcedUTXOs?: IUTXO[]): Promise<LoadedFunds>;
export declare function shortenNumber(value: number): number;
