Do you tell your players: this is demon x, it has 200hp and is immune to fire and poison, or do you just tell HP and AC?
When the characters encounter a monster, I describe it to the players or show them a picture or miniature so that they are clear on what their character can see.
I then refer to the monster by its name - because that is easier and clearer than the alternative, though I often use miniatures that don't match to what they represent and will refer to a monster by it's representation on the table instead of its name (i.e. last night the party was facing 8 gargoyles, but I only have 2 gargoyle minis so there were things like succubi on the table, and I would say "the red-winged succubus" when meaning "the gargoyle represented by the red-winged succubus" to save time) - and the players lose nothing by knowing the name of the monster their character faces.
I also don't call out hit point totals at the beginning of combat - but I'm not secretive about how many hit points something has, including that I'll sometimes ask a player to do the math on how many HP are left after a particular source of damage just dealt because my brain is busy thinking of other things and isn't getting the math done quick enough.
Edit to add for clarity: I also mention when the creature's HP reach about 1/2, and when they are nearing zero, so that the players can have the same sense as their characters do how much fight something has left, as mentioned earlier.
As for immunity and resistance, I make it clear to the player before they commit to any spending of limited resources so that the player can make an informed decision whether they feel it is "worth it" or not - with the exception being a creature that there is no possible way for the character to correctly guess at the capabilities of, which is an extremely rare thing.
And the players are otherwise not limited in their access to the game information.