import * as mvc from '../mvc';
import { CONTRACT_TYPE, SigHashInfo } from '../common/utils';
import { Sig } from 'mvc-scrypt';
export declare const sighashType: number;
export declare class TxComposer {
    tx: mvc.Transaction;
    sigHashList: SigHashInfo[];
    changeOutputIndex: number;
    constructor(tx?: mvc.Transaction);
    toObject(): {
        tx: any;
        txPrevOutputs: object[];
        sigHashList: SigHashInfo[];
        changeOutputIndex: number;
    };
    serialize(): string;
    static deserialize(composerStr: string): TxComposer;
    static fromObject(composerObj: any): TxComposer;
    getRawHex(): string;
    getTx(): mvc.Transaction;
    getTxId(): string;
    getInput(inputIndex: number): mvc.Transaction.Input;
    getOutput(outputIndex: number): mvc.Transaction.Output;
    appendP2PKHInput(utxo: {
        address: mvc.Address;
        satoshis: number;
        txId: string;
        outputIndex: number;
    }): number;
    appendInput(input: {
        txId: string;
        outputIndex: number;
        lockingScript?: mvc.Script;
        satoshis?: number;
    }): number;
    appendP2PKHOutput(output: {
        address: mvc.Address;
        satoshis: number;
    }): number;
    appendOutput(output: {
        lockingScript: mvc.Script;
        satoshis: number;
    }): number;
    appendOpReturnOutput(opreturnData: any): number;
    clearChangeOutput(): void;
    appendChangeOutput(changeAddress: mvc.Address, feeb?: number, extraSize?: number): number;
    unlockP2PKHInput(privateKey: mvc.PrivateKey, inputIndex: number, sigtype?: number): void;
    getTxFormatSig(privateKey: mvc.PrivateKey, inputIndex: number, sigtype?: number): Sig;
    getInputPreimage(inputIndex: number, sigtype?: number): import("mvc-scrypt").SigHashPreimage;
    getUnspentValue(): number;
    getFeeRate(): number;
    getSigHashLit(): SigHashInfo[];
    addSigHashInfo({ inputIndex, address, sighashType, contractType, }: {
        inputIndex: number;
        address: string;
        sighashType: number;
        contractType: CONTRACT_TYPE;
    }): void;
    getPrevoutsHash(): string;
    dumpTx(network?: string): void;
}
