import { TransactionOutput } from "../builders/transaction.builder"; import { CardanoAsset, Multiasset } from "./assets"; import { ScriptData } from "./scriptData"; import { CardanoTransaction } from "./transactions"; export declare type CardanoUTXO = { transaction: CardanoTransaction; block?: string; outputIndex?: number; utxo: { address: string; amount: { coin: number; multiasset?: Multiasset; datum?: string; }; }; }; export declare type ExceedingInputs = { [address: string]: { totalCoin?: number; tokens?: CardanoAsset[]; }; }; export declare type RequiredInputs = { [address: string]: { totalCoin?: number; tokens?: CardanoAsset[]; }; }; export declare type RequiredOutputItem = { totalCoin?: number; tokens?: CardanoAsset[]; datum?: ScriptData; }; export declare type RequiredOutputs = { [address: string]: { split?: RequiredOutputItem[]; } & RequiredOutputItem; }; export declare type AdaUTXOs = { satisfied: boolean; totalCoin: number; target: number; utxos: CardanoUTXO[]; bestCase?: boolean; }; export declare const UTXOS: { getAssetUtxo: (utxos: CardanoUTXO[], asset: string) => Promise; getAdaUtxo: (utxos: CardanoUTXO[], value: number, ignoreUtxos?: string[]) => Promise; toCardanoUTXO: (owner: string, utxo: any, dataHash?: string, block?: string, outputIndex?: number) => CardanoUTXO; getExceedingInputs: (utxos: CardanoUTXO[], requiredInputs: RequiredInputs) => ExceedingInputs; calculateOutputs: (inputsUtxo: CardanoUTXO[], requiredInputs: RequiredInputs, requiredOutputs: RequiredOutputs) => TransactionOutput[]; getAvailableCoinFromUTXO: (utxo: CardanoUTXO) => number; getTotalAvailableCoin: (utxos: CardanoUTXO[]) => number; calculateMinUtxoCost: (utxo: CardanoUTXO) => number; calculateMinMultiassetCost: (multiasset: Multiasset, hasDatum?: boolean) => number; sort: (utxos: CardanoUTXO[]) => CardanoUTXO[]; hasAsset: (utxo: CardanoUTXO, asset: string) => boolean; getTokenUtxo: (utxos: CardanoUTXO[], policyId: string, assetId: string, value: number, ignoreUtxos?: string[]) => Promise; };