/**
 * Tool for serializing and deserializing whole objects
 * TODO add support for null serialization
 * TODO add dictionary support
 */
export class BinaryObjectSerializationAdapter {
    /**
     *
     * @type {BinarySerializationRegistry}
     */
    registry: BinarySerializationRegistry;
    /**
     *
     * @type {BinaryBuffer}
     * @private
     */
    private __upgradeBuffer0;
    /**
     *
     * @type {BinaryBuffer}
     * @private
     */
    private __upgradeBuffer1;
    /**
     *
     * @param {BinarySerializationRegistry} registry
     */
    initialize(registry: BinarySerializationRegistry): void;
    /**
     * Serialize an object of a given class
     * @param {*} object Object to be serialized
     * @param {String} [className] Class name of the object, this will be looked up in the registry
     * @param {BinaryBuffer} buffer target buffer for the object data to be written into
     */
    serialize(buffer: BinaryBuffer, object: any, className?: string): void;
    /**
     * @template T
     * @param {BinaryBuffer} buffer
     * @returns {T}
     */
    deserialize<T>(buffer: BinaryBuffer): T;
}
import { BinaryBuffer } from "../../../../../core/binary/BinaryBuffer.js";
//# sourceMappingURL=BinaryObjectSerializationAdapter.d.ts.map