import { IProtobufSchemeItem, IProtobufSerializable } from "./type"; /** * Base class for protobuf objects. */ export declare class ObjectProto implements IProtobufSerializable { /** * Creates new instance of the class from ArrayBuffer or ObjectProto. * @param this - Class of the object to create. * @param data - Data to import. * @returns New instance of the class. */ static importProto(this: new () => T, data: ArrayBuffer | ObjectProto): Promise; /** * Raw data of the object. Represents protobuf message. */ protected raw?: ArrayBuffer | null; /** * Returns `true` if object is empty. Otherwise `false`. * @returns `true` if object is empty, otherwise `false`. */ isEmpty(): boolean; /** * Returns `true` if object has been changed. Otherwise `false`. * @returns `true` if object has been changed, otherwise `false`. */ hasChanged(): boolean; importProto(data: ArrayBuffer | ObjectProto): Promise; exportProto(): Promise; /** * Exports item to protobuf. * @param template - Template of the item. * @param value - Value of the item. * @returns Exported item. */ protected exportItem(template: IProtobufSchemeItem, value: unknown): Promise; /** * Imports item from protobuf. * @param template - Template of the item. * @param value - Value of the item. * @returns Imported item. */ protected importItem(template: IProtobufSchemeItem, value: any): Promise; }