/// <reference types="node" />
import * as mvc from '../mvc';
import { Bytes } from 'mvc-scrypt';
import BN = require('../bn.js');
export declare const RABIN_SIG_LEN = 384;
export declare let toBufferLE: (num: number | string, width: number) => Buffer;
export declare let getUInt8Buf: (amount: number) => Buffer;
export declare let getUInt16Buf: (amount: number) => Buffer;
export declare let getUInt32Buf: (index: number) => Buffer;
export declare let getUInt64Buf: (amount: number) => Buffer;
export declare let getTxIdBuf: (txid: string) => Buffer;
export declare let getScriptHashBuf: (scriptBuf: Buffer) => Buffer;
export declare let writeVarint: (buf: Buffer) => Buffer;
export declare let getLockingScriptFromPreimage: (buf: Buffer) => any;
export declare let getGenesisHashFromLockingScript: (lockingScript: any) => Buffer;
export declare let getRabinPubKeyHashArray: (rabinPubKeys: BN[]) => Buffer;
export declare function getOutpointBuf(txid: string, index: number): Buffer;
export declare const getEmptyTxOutputProof: () => {
    txHeader: Bytes;
    hashProof: Bytes;
    satoshiBytes: Bytes;
    scriptHash: Bytes;
};
export declare const buildScriptData: (data: Buffer) => Buffer;
export declare const getOpPushDataLen: (dataLen: number) => 2 | 1 | 3 | 5;
export declare function getTxidInfo(tx: mvc.Transaction): {
    txHeader: any;
    inputHashProof: any;
    outputHashProof: any;
};
export declare const getTxInputProof: (tx: mvc.Transaction, inputIndex: number) => (Bytes | {
    hashProof: Bytes;
    txHash: Bytes;
    outputIndexBytes: Bytes;
    sequenceBytes: Bytes;
})[];
export declare const getTxOutputProof: (tx: mvc.Transaction, outputIndex: number) => {
    txHeader: Bytes;
    hashProof: Bytes;
    satoshiBytes: Bytes;
    scriptHash: Bytes;
};
export declare const getTxInfoHex: (tx: mvc.Transaction, outputIndex: number) => {
    txHeader: any;
    txHashProof: any;
    txSatoshi: string;
};
