internal export interface DeSerializers < BinaryT = any , BooleanT = any , ByteT = any , DecimalT = any , DoubleT = any , FloatT = any , Int16T = any , Int32T = any , Int64T = any , GuidT = any , SByteT = any , SingleT = any , StringT = any , AnyT = any > { 'Edm.Binary' : DeSerializer < BinaryT > ; 'Edm.Boolean' : DeSerializer < BooleanT > ; 'Edm.Byte' : DeSerializer < ByteT > ; 'Edm.Decimal' : DeSerializer < DecimalT > ; 'Edm.Double' : DeSerializer < DoubleT > ; 'Edm.Float' : DeSerializer < FloatT > ; 'Edm.Int16' : DeSerializer < Int16T > ; 'Edm.Int32' : DeSerializer < Int32T > ; 'Edm.Int64' : DeSerializer < Int64T > ; 'Edm.Guid' : DeSerializer < GuidT > ; 'Edm.SByte' : DeSerializer < SByteT > ; 'Edm.Single' : DeSerializer < SingleT > ; 'Edm.String' : DeSerializer < StringT > ; 'Edm.Any' : DeSerializer < AnyT > ; } internal typeparam export interface DeSerializer < DeserializedT > { param value returns deserialize : ( value : any ) => DeserializedT ; param value returns serialize : ( value : DeserializedT ) => any ; param value param serialize returns serializeToUri ? : ( value : DeserializedT , serialize : DeSerializer < DeserializedT > [ 'serialize' ] ) => string ; } internal typeparam typeparam export type DeserializedType < DeSerializersT extends DeSerializers , EdmT > = EdmT extends keyof DeSerializersT ? DeSerializersT [ EdmT ] extends DeSerializer < infer DeserializedT > ? DeserializedT : any : any ; internal typeparam param deSerializers returns export function createValueDeserializer < DeSerializersT extends DeSerializers > ( deSerializers ) { return ( value , edmType ) => { const deserialize = deSerializers [ edmType as any ] ?. deserialize ; return deserialize ? deserialize ( value ) : value ; } ; } internal typeparam param deSerializers returns export function createValueSerializer < DeSerializersT extends DeSerializers > ( deSerializers ) { return ( value , edmType ) => { const serialize = deSerializers [ edmType as any ] ?. serialize ; return serialize ? serialize ( value ) : value ; } ; }