import BigNumber from 'bignumber.js' ; import { DeserializedType , DeSerializer , DeSerializers } from './de-serializers' ; import { defaultDeSerializers , DefaultDeSerializers } from './default-de-serializers' ; internal typeparam typeparam export type CustomOrDefaultType < CustomDeSerializerT , EdmT , DefaultDeSerializersT extends DefaultDeSerializers > = EdmT extends keyof CustomDeSerializerT ? CustomDeSerializerT [ EdmT ] extends DeSerializer < infer CustomT > | undefined ? CustomT : DeserializedType < DefaultDeSerializersT , EdmT > : DeserializedType < DefaultDeSerializersT , EdmT > ; internal param customDeSerializers returns export function mergeDefaultDeSerializersWith < BinaryT = string , BooleanT = boolean , ByteT = number , DecimalT = BigNumber , DoubleT = number , FloatT = number , Int16T = number , Int32T = number , Int64T = BigNumber , GuidT = string , SByteT = number , SingleT = number , StringT = string , AnyT = any > ( customDeSerializers ) { return { ... ( defaultDeSerializers as any ) , ... ( customDeSerializers || { } ) } ; } internal export type CustomDeSerializers < T > = DeSerializers < CustomOrDefaultType < T , 'Edm.Binary' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.Boolean' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.Byte' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.Decimal' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.Double' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.Float' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.Int16' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.Int32' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.Int64' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.Guid' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.SByte' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.Single' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.String' , DefaultDeSerializers > , CustomOrDefaultType < T , 'Edm.Any' , DefaultDeSerializers > > ;