function createLocalDateTimeTransformer ({ disableLosslessIntegers, useBigInt }) {
  return new TypeTransformer({
    signature: LOCAL_DATE_TIME,
    isTypeInstance: isLocalDateTime,
    toStructure: value => {
      const epochSecond = localDateTimeToEpochSecond(
        value.year,
        value.month,
        value.day,
        value.hour,
        value.minute,
        value.second,
        value.nanosecond
      )
      const nano = int(value.nanosecond)

      return new structure.Structure(LOCAL_DATE_TIME, [epochSecond, nano])
    },
    fromStructure: struct => {
      structure.verifyStructSize(
        'LocalDateTime',
        LOCAL_DATE_TIME_STRUCT_SIZE,
        struct.size
      )

      const [epochSecond, nano] = struct.fields
      const result = epochSecondAndNanoToLocalDateTime(epochSecond, nano)
      return convertIntegerPropsIfNeeded(result, disableLosslessIntegers, useBigInt)
    }
  })
}
Creates the LocalDateTime Transformer
@param {Object} param
@param {boolean} param.disableLosslessIntegers Disables lossless integers
@param {boolean} param.useBigInt Uses BigInt instead of number or Integer
@returns {TypeTransformer}