///
import { IStorage } from './FileSystemStorage';
import { IIndexingService } from './IndexingService';
import { KeyPair } from './KeyPair';
import { TransactionBuilder } from './TransactionBuilder';
import { OutputCollection } from './OutputCollection';
import { UnspentOutput } from './UnspentOutput';
import { Tx, Script } from 'bsv';
import * as Long from 'long';
export declare class Wallet {
protected readonly FINAL: number;
_isDebug: boolean;
protected _walletFileName: string;
protected _maxInputs: number;
protected _allowFundingBelowRequested: boolean;
protected _allowZeroFunding: boolean;
protected _dustLimit: number;
protected _allowMultipleInputs: boolean;
protected _fundingInputCount?: number;
protected _senderOutputCount?: number;
_selectedUtxos: OutputCollection | null;
_keypair: KeyPair;
lastTx: any;
feePerKbNum: number;
protected SIGN_INPUT_CHANGE: number;
protected SIGN_INPUT_NOCHANGE: number;
protected _storage: IStorage;
protected _index?: IIndexingService;
constructor(storage: IStorage, index?: IIndexingService);
get keyPair(): KeyPair;
get selectedUtxos(): OutputCollection;
set selectedUtxos(val: OutputCollection);
get balance(): number;
get fundingInputCount(): number | undefined;
get senderOutputCount(): number | undefined;
set allowZeroFunding(val: boolean);
set allowFundingBelowRequested(val: boolean);
get fileName(): string;
set fileName(val: string);
clear(): void;
pad(pad: string, str: string | undefined, padLeft: boolean): string;
txInDescription(txIn: any, index: number): {
value: number | undefined;
desc: string;
};
getInputOutput(txin: any, index: number): UnspentOutput | null | undefined;
getTxFund(tx: typeof Tx): number;
getTxSummary(tx: typeof Tx): any;
logDetailsLastTx(): void;
logDetails(tx?: any): void;
toJSON(): {
wif: string;
xpub: string;
address: any;
};
loadWalletFromJSON(fileName: string): void;
loadWallet(wif?: string): void;
generateKey(): any;
store(wallet: any): Promise;
loadUnspent(): Promise;
logUtxos(utxos: any): void;
getAnUnspentOutput(force?: boolean): Promise;
spendUtxos(utxos: OutputCollection, txBuilt: typeof Tx, index: number, txidBroadcast: string): number;
makeSimpleSpend(satoshis: Long, utxos?: OutputCollection, payTo?: typeof Script | string, fee?: number, data?: Buffer): Promise;
miningFeeExpected(txb?: TransactionBuilder): number | null;
tryLoadWalletUtxos(): Promise;
selectExpandableInputs(satoshis: Long, selected: OutputCollection, utxos?: OutputCollection): OutputCollection;
addData(txb: TransactionBuilder, data: Buffer): void;
makeStreamableCashTx(satoshis: Long, payTo?: typeof Script | Array | null, makeFuture?: boolean, utxos?: OutputCollection, data?: Buffer): Promise<{
hex: any;
tx: any;
txid: any;
utxos: OutputCollection;
txOutMap: any;
funding: number;
}>;
handlePayTo(txb: TransactionBuilder, payTo: string | Array | null | undefined, satoshis: Long): void;
split(utxos: OutputCollection, targetCount: number, satoshis: number): Promise<{
hex: any;
tx: any;
utxos: OutputCollection;
} | undefined>;
countOutputs(tx: typeof Tx): number;
filteredOutputs(tx: typeof Tx): any[];
addUnspent(payment: any): void;
}
//# sourceMappingURL=Wallet.d.ts.map