import { Writer } from './writer'; interface EncodeParam { value: T; writer: Writer; tag: number; } export type EncoderWithTag = (o: EncodeParam) => void; export type EncoderWithoutTag = (o: Omit, 'tag'>) => void; export type ScalarEncoder = (o: Omit, 'tag'> & { tag?: number; }) => void; export declare const encodeInt64ToBuffer: ScalarEncoder; export declare const encodeUint64ToBuffer: ScalarEncoder; export declare const encodeInt32ToBuffer: ScalarEncoder; export declare const encodeEnumToBuffer: ScalarEncoder; export declare const encodeUint32ToBuffer: ScalarEncoder; export declare const encodeSint64ToBuffer: ScalarEncoder; export declare const encodeFixed32ToBuffer: ScalarEncoder; export declare const encodeFixed64ToBuffer: ScalarEncoder; export declare const encodeSfixed32ToBuffer: ScalarEncoder; export declare const encodeSfixed64ToBuffer: ScalarEncoder; export declare const encodeSint32ToBuffer: ScalarEncoder; export declare const encodeBoolToBuffer: ScalarEncoder; export declare const encodeByteToBuffer: ScalarEncoder; export declare const encodeStringToBuffer: ScalarEncoder; export declare const encodeDoubleToBuffer: ScalarEncoder; export declare const encodeFloatToBuffer: ScalarEncoder; export declare const encodeRepeatToBuffer: (values: T[], encodeToBuffer: EncoderWithTag, tag: number, writer: Writer) => void; export declare const encodeMapToBuffer: >(value: T, opts: { isKeyNumber?: boolean; tag: number; writer: Writer; keyEncoderWithTag: EncoderWithTag; valueEncoderWithTag: EncoderWithTag; }) => void; export declare const encodePackedRepeatToBuffer: (values: T[], encodeToBuffer: EncoderWithTag, tag: number, writer: Writer) => void; export declare const encodeMessageToBuffer: (opts: EncodeParam, predicate: EncoderWithoutTag) => void; export {};