module Signet
  ( -- * Verification
    Signet.Unstable.verifyWebhookText,
    Signet.Unstable.verifyWebhookByteString,
    Signet.Unstable.verifyWebhook,
    Signet.Unstable.verifyWebhookWith,

    -- * Signing
    Signet.Unstable.signWebhook,

    -- * Headers
    Signet.Unstable.Extra.Http.hWebhookId,
    Signet.Unstable.Extra.Http.hWebhookTimestamp,
    Signet.Unstable.Extra.Http.hWebhookSignature,

    -- * Types
    Signet.Unstable.Type.AsymmetricSignature.AsymmetricSignature (..),
    Signet.Unstable.Type.Id.Id (..),
    Signet.Unstable.parseId,
    Signet.Unstable.Type.Message.Message (..),
    Signet.Unstable.parseMessage,
    Signet.Unstable.Type.Payload.Payload (..),
    Signet.Unstable.Type.PublicKey.PublicKey (..),
    Signet.Unstable.Type.Secret.Secret (..),
    Signet.Unstable.Type.SecretKey.SecretKey (..),
    Signet.Unstable.Type.Signature.Signature (Signet.Unstable.AsymmetricSignature, Signet.Unstable.SymmetricSignature),
    Signet.Unstable.Type.Signatures.Signatures (..),
    Signet.Unstable.parseSignatures,
    Signet.Unstable.Type.Signer.Signer (Signet.Unstable.AsymmetricSigner, Signet.Unstable.SymmetricSigner),
    Signet.Unstable.parseSigner,
    Signet.Unstable.Type.SymmetricSignature.SymmetricSignature (..),
    Signet.Unstable.Type.Timestamp.Timestamp (..),
    Signet.Unstable.parseTimestamp,
    Signet.Unstable.Type.Tolerance.Tolerance (..),
    Signet.Unstable.typicalTolerance,
    Signet.Unstable.Type.Verifier.Verifier (Signet.Unstable.AsymmetricVerifier, Signet.Unstable.SymmetricVerifier),
    Signet.Unstable.parseVerifier,

    -- * Exceptions
    Signet.Unstable.Exception.InvalidAsymmetricSignature.InvalidAsymmetricSignature (..),
    Signet.Unstable.Exception.InvalidId.InvalidId (..),
    Signet.Unstable.Exception.InvalidMessage.InvalidMessage (..),
    Signet.Unstable.Exception.InvalidPublicKey.InvalidPublicKey (..),
    Signet.Unstable.Exception.InvalidSecret.InvalidSecret (..),
    Signet.Unstable.Exception.InvalidSecretKey.InvalidSecretKey (..),
    Signet.Unstable.Exception.InvalidSignature.InvalidSignature (..),
    Signet.Unstable.Exception.InvalidSigner.InvalidSigner (..),
    Signet.Unstable.Exception.InvalidSymmetricSignature.InvalidSymmetricSignature (..),
    Signet.Unstable.Exception.InvalidTimestamp.InvalidTimestamp (..),
    Signet.Unstable.Exception.InvalidVerifier.InvalidVerifier (..),
    Signet.Unstable.Exception.SignetException.SignetException (..),
    Signet.Unstable.Exception.ToleranceException.ToleranceException (..),
    Signet.Unstable.Exception.UnknownSignature.UnknownSignature (..),
    Signet.Unstable.Exception.VerificationException.VerificationException (..),
  )
where

import qualified Signet.Unstable
import qualified Signet.Unstable.Exception.InvalidAsymmetricSignature
import qualified Signet.Unstable.Exception.InvalidId
import qualified Signet.Unstable.Exception.InvalidMessage
import qualified Signet.Unstable.Exception.InvalidPublicKey
import qualified Signet.Unstable.Exception.InvalidSecret
import qualified Signet.Unstable.Exception.InvalidSecretKey
import qualified Signet.Unstable.Exception.InvalidSignature
import qualified Signet.Unstable.Exception.InvalidSigner
import qualified Signet.Unstable.Exception.InvalidSymmetricSignature
import qualified Signet.Unstable.Exception.InvalidTimestamp
import qualified Signet.Unstable.Exception.InvalidVerifier
import qualified Signet.Unstable.Exception.SignetException
import qualified Signet.Unstable.Exception.ToleranceException
import qualified Signet.Unstable.Exception.UnknownSignature
import qualified Signet.Unstable.Exception.VerificationException
import qualified Signet.Unstable.Extra.Http
import qualified Signet.Unstable.Type.AsymmetricSignature
import qualified Signet.Unstable.Type.Id
import qualified Signet.Unstable.Type.Message
import qualified Signet.Unstable.Type.Payload
import qualified Signet.Unstable.Type.PublicKey
import qualified Signet.Unstable.Type.Secret
import qualified Signet.Unstable.Type.SecretKey
import qualified Signet.Unstable.Type.Signature
import qualified Signet.Unstable.Type.Signatures
import qualified Signet.Unstable.Type.Signer
import qualified Signet.Unstable.Type.SymmetricSignature
import qualified Signet.Unstable.Type.Timestamp
import qualified Signet.Unstable.Type.Tolerance
import qualified Signet.Unstable.Type.Verifier