You do NOT send your private key anywhere. All the time the private key stays client side.
From omni wallet wiki:
The actual creation of a transaction is elegant in its simplicity:
- a JSON payload is crafted locally
- The payload contains: from_address, pubKey, to_address, amount, currency, fee
- The JSON Payload is posted to the Omni server which responds with a specialized transaction for the wallet owner’s public key
- The client in turn signs the transaction and posts it back to Omni to broadcast into the bitcoin network
- Notice how the server never needs your private key, and you only use it client side.