fix(timing-issue): make the declaration file synchronous and faster
fix(synchronization): restructuring, only generate declarations after a compile