Habitat condition is critical to successful spawning, foraging, and avoidance of predators.  There is no one-size-fits-all description of ideal fish habitat since fish needs vary substantially among different species and life stages.  For instance, chum salmon prefer to spawn in side-channel habitat, which is quite different from the main channel riffle habitat where chinook usually spawn.  Adult chinook may "hold" in fresh water for six months or more before spawning, so refuge habitat such as deep pools with woody debris are important to them, while adult chum salmon return to fresh water ready to spawn with little or no delay, and therefore pool habitat for long term holding may be less important to them.  Generally, though, to support a wide variety of fish species a stream should have a combination of pools and riffles, woody cover in the stream for refuge from predators and to provide places to rest, stream-side vegetation to shade the stream and keep water cool and clean, and connections between different habitats that allow the fish to move from say, a main channel area to a side channel and back.