Yeah, they seem like an appropriate interface. 

Perhaps it would be useful to split up status into one function that returns the status of the index vs HEAD and one that returns the status of the working tree vs the index?