There's
SkillInfo - you might use it as a starting point. It's really keyboard based (there's hooks for user created quickslots - so technically you could completely replace the built-in quickslots, but I've never done that), so it may not be suitable for whatever you're planning. It uses a keypress/mouse click -> power drop -> combat log message model in order to detect skill uses. You can skip either the power drop or combat log message, but since all skill uses are user initiated, it does require detecting an appropriate keypress/mouse click.