import { ICreateP2PKHParams } from '../helpers/p2pkh/types'; import { IDogeLinkElectrsRPC } from '../rpc/electrsTypes'; import { IDogeLinkRPC, IUTXO } from '../rpc/types'; import { Transaction } from '../transaction'; import { IDogeTransactionSigner } from '../wallet/types'; declare enum SingletStatusUpdateEventType { SignSelfTransfer = 0, WaitForSelfTransferTx = 1, SignFinalTransaction = 2 } interface ISingletStatusUpdateEventBase { type: SingletStatusUpdateEventType; txid?: string; } interface ISingletStatusUpdateSign extends ISingletStatusUpdateEventBase, ICreateP2PKHParams { type: SingletStatusUpdateEventType.SignSelfTransfer | SingletStatusUpdateEventType.SignFinalTransaction; fee: number; } interface ISingletStatusUpdateWaitForTx extends ISingletStatusUpdateEventBase { type: SingletStatusUpdateEventType.WaitForSelfTransferTx; txid: string; } type ISingletStatusUpdateEvent = ISingletStatusUpdateSign | ISingletStatusUpdateWaitForTx; interface ITransferSingletOptionsBase { signer: IDogeTransactionSigner; amount: number; feeRate: number; destination: string; rpc: IDogeLinkRPC; onStatusUpdate?: (event: ISingletStatusUpdateEvent) => Promise | any; mineBlocksAfterSelfTransfer?: number; utxos?: IUTXO[]; dustThreshold?: number; } interface ITransferSingletOptionsElectrs extends ITransferSingletOptionsBase { rpc: IDogeLinkElectrsRPC; } interface ITransferSingletOptionsUTXOs extends ITransferSingletOptionsBase { utxos: IUTXO[]; } type ITransferSingletOptions = ITransferSingletOptionsElectrs | ITransferSingletOptionsUTXOs; declare function createSingletTransaction(options: ITransferSingletOptions): Promise; declare function sendSingletTransaction(options: ITransferSingletOptions): Promise; export { createSingletTransaction, sendSingletTransaction, };