import { SmartBuffer } from '@devgrid/smartbuffer';
import Encoder from './encoder';
import Decoder from './decoder';
import { BufferType, DecodeFunction, EncodeFunction } from './types';
export default class Serializer {
    private initialCapacity;
    private encodingTypes;
    private decodingTypes;
    encoder: Encoder;
    decoder: Decoder;
    constructor(initialCapacity?: number);
    registerEncoder(type: number, check: any, encode: EncodeFunction): Serializer;
    registerDecoder(type: number, decode: DecodeFunction): Serializer;
    register(type: number, constructor: any, encode: EncodeFunction, decode: DecodeFunction): Serializer;
    encode(x: any, buf?: SmartBuffer): SmartBuffer;
    decode(buf: BufferType): any;
}
