/// <reference types="node" />
import * as BN from '../../bn.js';
import * as proto from '../../common/protoheader';
export declare const PROTO_VERSION = 1;
export declare const SIGNER_NUM = 5;
export declare const SIGNER_VERIFY_NUM = 3;
export type SensibleID = {
    txid: string;
    index: number;
};
export type FormatedDataPart = {
    tokenName?: string;
    tokenSymbol?: string;
    genesisFlag?: GENESIS_FLAG;
    decimalNum?: number;
    tokenAddress?: string;
    tokenAmount?: BN;
    genesisHash?: string;
    rabinPubKeyHashArrayHash?: string;
    sensibleID?: SensibleID;
    protoVersion?: number;
    protoType?: proto.PROTO_TYPE;
};
export declare const GENESIS_TOKEN_ID: Buffer;
export declare const EMPTY_ADDRESS: Buffer;
export declare const nonGenesisFlag: Buffer;
export declare const OP_TRANSFER = 1;
export declare const OP_UNLOCK_FROM_CONTRACT = 2;
export declare enum FT_OP_TYPE {
    TRANSFER = 1,
    UNLOCK_FROM_CONTRACT = 2
}
export declare enum GENESIS_FLAG {
    FALSE = 0,
    TRUE = 1
}
export declare function getHeaderLen(): number;
export declare function getTokenAmount(script: Buffer): BN;
export declare function getTokenID(script: Buffer): Buffer;
export declare function getSensibleID(script0: Buffer): {
    txid: string;
    index: number;
};
export declare function getRabinPubKeyHashArrayHash(script: Buffer): string;
export declare function getGenesisHash(script: Buffer): string;
export declare function getTokenAddress(script: Buffer): string;
export declare function getDecimalNum(script: Buffer): number;
export declare function getGenesisFlag(script: Buffer): number;
export declare function getTokenSymbol(script: Buffer): string;
export declare function getTokenName(script: Buffer): string;
export declare function getContractCode(script: Buffer): Buffer;
export declare function getContractCodeHash(script: Buffer): Buffer;
export declare function getDataPart(script: Buffer): Buffer;
export declare function getNewTokenScript(scriptBuf: Buffer, address: Buffer, tokenAmount: BN): Buffer;
export declare function newDataPart({ tokenName, tokenSymbol, genesisFlag, decimalNum, tokenAddress, tokenAmount, genesisHash, rabinPubKeyHashArrayHash, sensibleID, protoVersion, protoType, }: FormatedDataPart): Buffer;
export declare function parseDataPart(scriptBuf: Buffer): FormatedDataPart;
export declare function updateScript(scriptBuf: Buffer, dataPartObj: FormatedDataPart): Buffer;
export declare function getQueryCodehash(script: Buffer): string;
export declare function getQueryGenesis(script: Buffer): string;
export declare function getQuerySensibleID(script0: Buffer): string;
