///
import { TransactionType } from "./transaction-type";
import { Attachment } from "./attachment";
import * as appendix from "./appendix";
import ByteBuffer from "bytebuffer";
export declare class Builder {
_deadline: number;
_senderPublicKey: Array;
_amountHQT: string;
_feeHQT: string;
_type: TransactionType;
_version: number;
_attachment: Attachment;
_recipientId: string;
_signature: Array;
_message: appendix.AppendixMessage;
_encryptedMessage: appendix.AppendixEncryptedMessage;
_encryptToSelfMessage: appendix.AppendixEncryptToSelfMessage;
_publicKeyAnnouncement: appendix.AppendixPublicKeyAnnouncement;
_privateNameAnnouncement: appendix.AppendixPrivateNameAnnouncement;
_privateNameAssignment: appendix.AppendixPrivateNameAssignment;
_publicNameAnnouncement: appendix.AppendixPublicNameAnnouncement;
_publicNameAssignment: appendix.AppendixPublicNameAssignment;
_isTestnet: boolean;
_genesisKey: Array;
_timestamp: number;
_ecBlockHeight: number;
_ecBlockId: string;
deadline(deadline: number): this;
senderPublicKey(senderPublicKey: Array): this;
amountHQT(amountHQT: string): this;
feeHQT(feeHQT: string): this;
version(version: number): this;
attachment(attachment: Attachment): this;
recipientId(recipientId: string): this;
signature(signature: Array): this;
message(message: appendix.AppendixMessage): this;
encryptedMessage(encryptedMessage: appendix.AppendixEncryptedMessage): this;
encryptToSelfMessage(encryptToSelfMessage: appendix.AppendixEncryptToSelfMessage): this;
publicKeyAnnouncement(publicKeyAnnouncement: appendix.AppendixPublicKeyAnnouncement): this;
privateNameAnnouncement(privateNameAnnouncement: appendix.AppendixPrivateNameAnnouncement): this;
privateNameAssignment(privateNameAssignment: appendix.AppendixPrivateNameAssignment): this;
publicNameAnnouncement(publicNameAnnouncement: appendix.AppendixPublicNameAnnouncement): this;
publicNameAssignment(publicNameAssignment: appendix.AppendixPublicNameAssignment): this;
isTestnet(isTestnet: boolean): this;
genesisKey(genesisKey: Array): this;
timestamp(timestamp: number): this;
ecBlockId(ecBlockId: string): this;
ecBlockHeight(ecBlockHeight: number): this;
build(secretPhrase: string): TransactionImpl;
}
export declare class TransactionImpl {
private appendages;
private appendagesSize;
private height;
private signature;
private type;
private version;
private timestamp;
private deadline;
private senderPublicKey;
private recipientId;
private amountHQT;
private feeHQT;
private message;
private encryptedMessage;
private encryptToSelfMessage;
private publicKeyAnnouncement;
private privateNameAnnouncement;
private privateNameAssignment;
private publicNameAnnouncement;
private publicNameAssignment;
private ecBlockHeight;
private ecBlockId;
private isTestnet;
private genesisKey;
constructor(builder: Builder, secretPhrase: string | null);
getSignature(): number[];
getUnsignedBytes(): Array;
private getSize;
private getFlags;
private signatureOffset;
private zeroSignature;
getByteBuffer(): ByteBuffer;
getBytes(): Buffer;
getBytesAsHex(): string;
getRaw(): any;
getJSONObject(): {
[key: string]: any;
};
verifySignature(): boolean;
static parseJSON(json: {
[key: string]: any;
}, isTestnet?: boolean): TransactionImpl;
static parse(transactionBytesHex: string, isTestnet?: boolean): TransactionImpl;
}