You should put the structure and the typedef
in a header file that comes with the library. Both the library and the applications using the library uses this header file. Structures and typedefs defined in header file do not cause multiple definition errors, only defining global variables or functions in both will do that.
Also, functions in the library should be prototyped in the header files of your library as well.