///
import ISerializer, { InputOf, OutputOf, JSONOutputOf } from "./ISerializer";
declare type SerializersMap = {
[key: string]: ISerializer;
};
declare type TInput = {
[key in keyof T]: InputOf;
};
declare type TOutput = {
[key in keyof T]: OutputOf;
};
declare type TJSONOutput = {
[key in keyof T]: JSONOutputOf;
};
export declare class StructSerializer extends ISerializer, TOutput, TJSONOutput> {
readonly serializers: Readonly;
readonly keys: (keyof T)[];
constructor(serializers: T);
toJSON(value: TInput): TJSONOutput;
fromJSON(value: TJSONOutput): TOutput;
toBuffer(value: TInput): Buffer;
readFromBuffer(buffer: Buffer, offset?: number): {
res: TOutput;
newOffset: number;
};
}
export default function struct(serializers: T): StructSerializer;
export {};