import { Field, LengthDelimited } from "./index.js"; type WireValueToTsValue = (wireValue: Field) => T | undefined; type TsValueToWireValue = (tsValue: T) => Field; type Unpack = (wireValues: Iterable) => Generator; type Pack = (values: T[]) => LengthDelimited; interface WireValueToTsValueFns extends NumericWireValueToTsValueFns { string: WireValueToTsValue; bytes: WireValueToTsValue; } interface TsValueToWireValueFns extends TsValueToNumericWireValueFns { string: TsValueToWireValue; bytes: TsValueToWireValue; } interface NumericWireValueToTsValueFns extends VarintFieldToTsValueFns { double: WireValueToTsValue; float: WireValueToTsValue; fixed32: WireValueToTsValue; fixed64: WireValueToTsValue; sfixed32: WireValueToTsValue; sfixed64: WireValueToTsValue; } interface TsValueToNumericWireValueFns extends TsValueToVarintFieldFns { double: TsValueToWireValue; float: TsValueToWireValue; fixed32: TsValueToWireValue; fixed64: TsValueToWireValue; sfixed32: TsValueToWireValue; sfixed64: TsValueToWireValue; } type VarintFieldToTsValueFns = typeof varintFieldToTsValueFns; declare const varintFieldToTsValueFns: { int32: WireValueToTsValue; int64: WireValueToTsValue; uint32: WireValueToTsValue; uint64: WireValueToTsValue; sint32: WireValueToTsValue; sint64: WireValueToTsValue; bool: WireValueToTsValue; }; type TsValueToVarintFieldFns = typeof tsValueToVarintFieldFns; declare const tsValueToVarintFieldFns: { int32: TsValueToWireValue; int64: TsValueToWireValue; uint32: TsValueToWireValue; uint64: TsValueToWireValue; sint32: TsValueToWireValue; sint64: TsValueToWireValue; bool: TsValueToWireValue; }; export declare const wireValueToTsValueFns: WireValueToTsValueFns; export declare const tsValueToWireValueFns: TsValueToWireValueFns; type UnpackFns = { [type in keyof NumericWireValueToTsValueFns]: Unpack>>; }; export declare const unpackFns: UnpackFns; type PackFns = { [type in keyof NumericWireValueToTsValueFns]: Pack>>; }; export declare const packFns: PackFns; export {};