import { CodecModuleConstructor } from './types/CodecModuleConstructor';
import { CodecDecodeResult } from './types/CodecDecodeResult';
import { CodecEncodeInput } from './types/CodecEncodeInput';
import { CodecSchema } from './types/CodecSchema';
import { CodecEncodeResult } from './types/CodecEncodeResult';
export declare class Codec {
    #private;
    protected get HEADER_CODECS(): CodecModuleConstructor[];
    get CODEC_SCHEMAS(): CodecSchema[];
    constructor(codecModuleConstructors?: CodecModuleConstructor[]);
    /**
     * Load codec schemas
     * @protected
     */
    protected loadCodecSchemas(): CodecSchema[];
    /**
     * Load header codecs
     * @protected
     */
    protected loadHeaderCodecs(): CodecModuleConstructor[];
    /**
     * Decode packet
     * @param packet
     */
    decode(packet: Buffer): Promise<CodecDecodeResult[]>;
    /**
     * Encode packet
     * @param inputs
     */
    encode(inputs: CodecEncodeInput[]): Promise<CodecEncodeResult>;
}
//# sourceMappingURL=Codec.d.ts.map