Nope, you can't battle Lyra at all at any point during the game in Pokémon HeartGold.
Chat with our AI personalities
In HeartGold and SoulSilver, she does not battle you - which might be one of the reasons why she doesn't have a starter pokemon. Instead, she has a Marill.
You can't battle Lyra.
you never battle her.
A hat
It's called the dowsing machine in SoulSilver and HeartGold, you get it from either Ethan/Lyra, or someone you have to do a job for. I can't remember which, I know you have to beat the goldenrod Gym first.