[...] I am trying to call csfml methods from the generated code, that's why it's all re-declared.
That's an overly error-prone way to do it, as you've just noticed with this very issue. In order to make the declarations visible, include the header files, that's what they are for.
I think I see now what the problem is because of your remark about the signature, which indeed doesn't seem to mach (details, details...).
It's not a minor detail... You have different structure types with different object layouts. The fact that C is less strict when it comes to function declarations than C++ doesn't mean exploiting this "feature" is recommended. After all, there's a reason why C++ requires function signatures to match exactly: it saves you from UB at runtime.
What exactly is the reason why you can't use the original SFML headers? If you want to "fake" the SFML types, you have to duplicate everything, be overly careful and make sure that no version breaks your code. In short, it's rather pointless...