/// import { Type, TypedValue } from "./typesystem"; interface IArgSerializerOptions { codec: ICodec; } interface ICodec { decodeTopLevel(buffer: Buffer, type: Type): TypedValue; encodeTopLevel(typedValue: TypedValue): Buffer; } interface IParameterDefinition { type: Type; } export declare class ArgSerializer { codec: ICodec; constructor(options?: IArgSerializerOptions); /** * Reads typed values from an arguments string (e.g. aa@bb@@cc), given parameter definitions. */ stringToValues(joinedString: string, parameters: IParameterDefinition[]): TypedValue[]; /** * Reads raw buffers from an arguments string (e.g. aa@bb@@cc). */ stringToBuffers(joinedString: string): Buffer[]; /** * Decodes a set of buffers into a set of typed values, given parameter definitions. */ buffersToValues(buffers: Buffer[], parameters: IParameterDefinition[]): TypedValue[]; /** * Serializes a set of typed values into an arguments string (e.g. aa@bb@@cc). */ valuesToString(values: TypedValue[]): { argumentsString: string; count: number; }; /** * Serializes a set of typed values into a set of strings. */ valuesToStrings(values: TypedValue[]): string[]; /** * Serializes a set of typed values into a set of strings buffers. * Variadic types and composite types might result into none, one or more buffers. */ valuesToBuffers(values: TypedValue[]): Buffer[]; } export {};