/// import { IEncodable } from '../encoder/encoder'; export declare enum ATTACHMENT_TYPE { ETP_TRANSFER = 0, MST = 2, MESSAGE = 3, AVATAR = 4, CERTIFICATE = 5, MIT = 6, COINSTAKE = -1 } export declare enum ATTACHMENT_VERSION { DEFAULT = 1, DID = 207 } export declare enum MIT_STATUS { REGISTER = 1, TRANSFER = 2 } export declare enum MST_STATUS { REGISTER = 1, TRANSFER = 2 } export declare enum AVATAR_STATUS { REGISTER = 1, TRANSFER = 2 } export declare enum CERTIFICATE_TYPE { ISSUE = 1, DOMAIN = 2, NAMING = 3, WITNESS = 5, MINING = 1610612740 } export declare enum CERTIFICATE_STATUS { DEFAULT = 0, ISSUE = 1, TRANSFER = 2, AUTOISSUE = 3 } export interface IAttachment { type: number; version: number; from_did?: string; to_did?: string; } export declare abstract class Attachment implements IEncodable { type: number; version: number; from_did?: string; to_did?: string; constructor(type: number, version?: number); toBuffer(): Buffer; toString(): string; encodeDid(): Buffer; toJSON(): this; setDid(from?: string, to?: string): this; static fromBuffer(buffer: Buffer): AttachmentETPTransfer | AttachmentMessage | AttachmentDomainCertificate | AttachmentIssueCertificate | AttachmentNamingCertificate | AttachmentWitnessCertificate | AttachmentMiningCertificate | AttachmentMITTransfer | AttachmentMITIssue | AttachmentAvatarRegister | AttachmentAvatarTransfer | AttachmentMSTIssue | AttachmentMSTTransfer | AttachmentCoinstake; static decode(bufferstate: { buffer: Buffer; offset: number; }): AttachmentETPTransfer | AttachmentMessage | AttachmentDomainCertificate | AttachmentIssueCertificate | AttachmentNamingCertificate | AttachmentWitnessCertificate | AttachmentMiningCertificate | AttachmentMITTransfer | AttachmentMITIssue | AttachmentAvatarRegister | AttachmentAvatarTransfer | AttachmentMSTIssue | AttachmentMSTTransfer | AttachmentCoinstake; } export declare class AttachmentETPTransfer extends Attachment implements IAttachment { constructor(); } export declare class AttachmentCoinstake extends Attachment implements IAttachment { constructor(); } export declare class AttachmentMessage extends Attachment { private data; constructor(data: string, version?: ATTACHMENT_VERSION); toBuffer(): Buffer; } export declare class AttachmentMSTIssue extends Attachment { symbol: string; maxSupply: number; precision: number; secondaryIssueThreshold: number; issuer: string; address: string; description: string; constructor(symbol: string, maxSupply: number, precision: number, secondaryIssueThreshold: number, issuer: string, address: string, description: string, version?: ATTACHMENT_VERSION); toBuffer(): Buffer; } export declare class AttachmentMSTTransfer extends Attachment { symbol: string; quantity: number; constructor(symbol: string, quantity: number, version?: ATTACHMENT_VERSION); toBuffer(): Buffer; } export declare class AttachmentMITIssue extends Attachment { private symbol; private address; private content; constructor(symbol: string, address: string, content: string); toBuffer(): Buffer; } export declare class AttachmentMITTransfer extends Attachment { private symbol; private address; constructor(symbol: string, address: string); toBuffer(): Buffer; } export declare class AttachmentAvatarRegister extends Attachment { private symbol; private address; private status; constructor(symbol: string, address: string); toBuffer(): Buffer; } export declare abstract class AttachmentCertificate extends Attachment { private symbol; private owner; private address; private certType; private status; private content?; constructor(symbol: string, owner: string, address: string, certType: CERTIFICATE_TYPE, status: CERTIFICATE_STATUS, content?: string | undefined); toBuffer(): Buffer; } export declare class AttachmentDomainCertificate extends AttachmentCertificate { constructor(symbol: string, owner: string, address: string, status: CERTIFICATE_STATUS); toBuffer(): Buffer; } export declare class AttachmentIssueCertificate extends AttachmentCertificate { constructor(symbol: string, owner: string, address: string, status: CERTIFICATE_STATUS); toBuffer(): Buffer; } export declare class AttachmentWitnessCertificate extends AttachmentCertificate { constructor(symbol: string, owner: string, address: string, status: CERTIFICATE_STATUS); toBuffer(): Buffer; } export declare class AttachmentNamingCertificate extends AttachmentCertificate { constructor(symbol: string, owner: string, address: string, status: CERTIFICATE_STATUS); toBuffer(): Buffer; } export declare class AttachmentMiningCertificate extends AttachmentCertificate { constructor(symbol: string, owner: string, address: string, status: CERTIFICATE_STATUS, content: string); toBuffer(): Buffer; } export declare class AttachmentAvatarTransfer extends Attachment { private symbol; private address; private status; constructor(symbol: string, address: string); toBuffer(): Buffer; }