import { type Callback } from '../apis/definitions.ts'; import { type MessageToConsume, type MessageToProduce } from '../protocol/records.ts'; export type Serializer = (data?: InputType, metadata?: unknown) => Buffer | undefined; export type SerializerWithHeaders = (data?: InputType, headers?: Map, message?: MessageToProduce) => Buffer | undefined; export type Deserializer = (data?: Buffer, message?: MessageToConsume) => OutputType | undefined; export type DeserializerWithHeaders = (data?: Buffer, headers?: Map, message?: MessageToConsume) => OutputType | undefined; export interface Serializers { key: SerializerWithHeaders; value: SerializerWithHeaders; headerKey: Serializer; headerValue: Serializer; } export interface Deserializers { key: DeserializerWithHeaders; value: DeserializerWithHeaders; headerKey: Deserializer; headerValue: Deserializer; } export type BeforeHookPayloadType = 'key' | 'value' | 'headerKey' | 'headerValue'; export type BeforeDeserializationHook = (payload: Buffer, type: BeforeHookPayloadType, message: MessageToConsume, callback: Callback) => void | Promise; export type BeforeSerializationHook = (payload: unknown, type: BeforeHookPayloadType, message: MessageToProduce, callback: Callback) => void | Promise; export declare function stringSerializer(data?: string): Buffer | undefined; export declare function stringDeserializer(data?: string | Buffer): string | undefined; export declare function jsonSerializer>(data?: T): Buffer | undefined; export declare function jsonDeserializer>(data?: string | Buffer): T | undefined; export declare function serializersFrom(serializer: Serializer): Serializers; export declare function deserializersFrom(deserializer: Deserializer): Deserializers; export declare const serdeProperties: { type: string; properties: { key: { function: boolean; }; value: { function: boolean; }; headerKey: { function: boolean; }; headerValue: { function: boolean; }; }; additionalProperties: boolean; }; export declare const stringSerializers: Serializers; export declare const stringDeserializers: Deserializers;