Is it possible to add villager variants using datapack or texturepacks? biome or y level specific

is it possible to give a villager a different skin if it spawns in a certain y level or a biome?
Continue to help post