/// <reference types="node" />
import { INamespace } from "protobufjs/light";
import * as protobuf from "protobufjs/light";
export declare const root: protobuf.Root;
export declare const EMPTY_BUFFER: Buffer;
interface IRegistrationMessage extends protobuf.Constructor<{}> {
    /**
     * Register the message to be used as the default class for
     * the given protobuf type
     */
    register(): void;
}
/**
 * Register the message to be encoded/decoded by protobufjs. The name
 * should match the one in the model and the dependencies of the
 * message should be provided to insure their registration.
 *
 * @param name          The name of the message in the protobuf definition
 * @param ctor          The message class
 * @param dependencies  The message classes of the dependencies
 */
export declare function registerMessage(name: string, ctor: protobuf.Constructor<{}>, ...dependencies: IRegistrationMessage[]): void;
/**
 * Add a JSON definition to the existing root
 *
 * @param json The definition imported from a json file
 */
export declare function addJSON(json: INamespace): void;
export {};
