Rather than having a hard requirement that you receive an instance of zap.Logger, the better approach is to define a Logger interface that zap.Logger satisfies, and then replace your references to zap.Logger with references to your Logger interface.
This would make it possible for implementations using your library to be able to provide a logger that satisfies the interface even if it's not based on zap, otherwise you're forcing us to use zap explicitly to be able to pass our own logger.