/**
 * @quicproquo/client -- TypeScript SDK for quicproquo E2E encrypted messenger.
 *
 * The SDK provides:
 *  - WASM-powered crypto (Ed25519, hybrid X25519+ML-KEM-768, sealed sender)
 *  - A high-level QpqClient class for server RPC via WebSocket bridge
 *  - Standalone crypto operations that work without a server connection
 */

// Client
export { QpqClient } from "./client.js";

// Transport
export { WebSocketTransport } from "./transport.js";
export type { Transport } from "./transport.js";

// Crypto (direct access for advanced usage)
export {
  initCrypto,
  isCryptoReady,
  generateIdentity,
  identityPublicKey,
  sign,
  verify,
  hybridGenerateKeypair,
  hybridPublicKey,
  hybridEncrypt,
  hybridDecrypt,
  computeSafetyNumber,
  seal,
  unseal,
  padMessage,
  unpadMessage,
} from "./crypto.js";

// Types
export type {
  ConnectOptions,
  Message,
  ChannelResult,
  Identity,
  HybridKeypair,
  RpcRequest,
  RpcResponse,
  TransportEvent,
} from "./types.js";
