///
import { Network } from './';
import { TxOutput, Transaction } from './';
export interface Signer {
privateKey?: Buffer;
publicKey: Buffer;
getPublicKey?(): Buffer;
sign(hash: Buffer, lowR?: boolean): Buffer;
signSchnorr(hash: Buffer): Buffer;
}
interface TxbSignArg {
prevOutScriptType: string;
vin: number;
keyPair: Signer;
redeemScript?: Buffer;
hashType?: number;
witnessValue?: TNumber;
witnessScript?: Buffer;
controlBlock?: Buffer;
annex?: Buffer;
}
export declare class TransactionBuilder {
network: Network;
maximumFeeRate: number;
static fromTransaction(transaction: Transaction, network?: Network, prevOutputs?: TxOutput[]): TransactionBuilder;
private __PREV_TX_SET;
private __INPUTS;
private __TX;
private __USE_LOW_R;
constructor(network?: Network, maximumFeeRate?: number);
setLowR(setting?: boolean): boolean;
setLockTime(locktime: number): void;
setVersion(version: number): void;
addInput(txHash: Buffer | string | Transaction, vout: number, sequence?: number, prevOutScript?: Buffer, value?: TNumber): number;
addOutput(scriptPubKey: string | Buffer, value: TNumber): number;
build(): Transaction;
buildIncomplete(): Transaction;
sign(signParams: number | TxbSignArg, keyPair?: Signer, redeemScript?: Buffer, hashType?: number, witnessValue?: TNumber, witnessScript?: Buffer, controlBlock?: Buffer, annex?: Buffer): void;
private __addInputUnsafe;
private __build;
private __canModifyInputs;
private __needsOutputs;
private __canModifyOutputs;
private __overMaximumFees;
}
export {};
//# sourceMappingURL=transaction_builder.d.ts.map