Added several interfaces.

They describe how clients interact with the library.