Remember that include effectively replaces the Include line with the source from the included file. Therefore, all those files are basically really one big file. That means that any included files that depend on Types/Functions etc in other files don't really depend on the other files, since it is just one *big* file split into parts.
However, since Imported files are compiled separately, you cannot have file A importing B when you have B depending on code in type A. You will get compilation errors.
You can always create files for Globals if you need them. Say, call it C, which both A and B can import.
Using Import is all down to the design of your code. If you build it modularly then you won't have a problem. If however, everything depends on everything else, then you might find difficulty using Imports.
A good design can avoid that problem.
HTH
However, since Imported files are compiled separately, you cannot have file A importing B when you have B depending on code in type A. You will get compilation errors.
You can always create files for Globals if you need them. Say, call it C, which both A and B can import.
Using Import is all down to the design of your code. If you build it modularly then you won't have a problem. If however, everything depends on everything else, then you might find difficulty using Imports.
A good design can avoid that problem.
HTH