///
import { BufferWriter } from './writer';
import { BufferReader } from './reader';
export interface Struct {
inject(obj: Struct): this;
clone(): Struct;
getSize(extra?: any): number;
write(bw: BufferWriter, extra?: any): BufferWriter;
read(br: BufferReader, extra?: any): this;
toString(): string;
fromString(str: string, extra?: any): this;
getJSON(): {
[name: string]: any;
};
fromJSON(json: {
[name: string]: any;
}, extra?: any): this;
fromOptions(options: any, extra?: any): this;
from(options: any, extra?: any): this;
format(): {
[name: string]: any;
};
encode(extra?: any): Buffer;
decode(data: Buffer, extra?: any): this;
toHex(extra?: any): string;
fromHex(str: string, extra?: any): this;
toBase64(): string;
fromBase64(str: string, extra?: any): this;
toJSON(): {
[name: string]: any;
};
toWriter(bw: BufferWriter, extra?: any): BufferWriter;
fromReader(br: BufferReader, extra?: any): this;
toRaw(extra?: any): Buffer;
fromRaw(data: Buffer, extra?: any): this;
}
export interface StructCtor {
new (...args: any[]): T;
read(br: BufferReader, extra?: any): T;
decode(data: Buffer, extra?: any): T;
fromHex(str: string, extra?: any): T;
fromBase64(str: string, extra?: any): T;
fromString(str: string, extra?: any): T;
fromJSON(json: {
[name: string]: any;
}, extra?: any): T;
fromOptions(options: any, extra?: any): T;
from(options: any, extra?: any): T;
fromReader(br: BufferReader, extra?: any): T;
fromRaw(data: Buffer, extra?: any): T;
}