You are not required to provide a list of function prototypes. But, don't use this to hide major components of the program. The programmers will not be happy if you do this. Stating that you have a hash table module that allows you to add, find or delete items using strings as indexes does not require much more detail. Stating that you have a function that inputs a C program and returns the compiled program, needs more detail.
Diagrams can be useful to indicate the static and dynamic structure of the modules.
That is a diagram showing how the modules interact. Class diagrams, flow diagrams, state diagrams, what ever helps the reader understand your design. This is a client server application. You should have a section describing the protocol. This means describing the commands that the client can send to the server and the responses the server can return.