content: {-# LANGUAGE DataKinds #-}
  {-# LANGUAGE DoAndIfThenElse #-}
  {-# LANGUAGE FlexibleContexts #-}
  {-# LANGUAGE GADTs #-}
  {-# LANGUAGE OverloadedStrings #-}
  {-# LANGUAGE RankNTypes #-}
  {-# LANGUAGE ScopedTypeVariables #-}
  
  module Web.Spock.Action
    ( -- * Action types
      ActionT,
      W.ActionCtxT,
  
      -- * Handling requests
      request,
      header,
      rawHeader,
      cookies,
      cookie,
      reqMethod,
      preferredFormat,
      ClientPreferredFormat (..),
      body,
      jsonBody,
      jsonBody',
      files,
      UploadedFile (..),
      params,
      paramsGet,
      paramsPost,
      param,
      param',
  
      -- * Working with context
      getContext,
      runInContext,
  
      -- * Sending responses
      setStatus,
      setHeader,
      redirect,
      jumpNext,
      CookieSettings (..),
      defaultCookieSettings,
      CookieEOL (..),
      setCookie,
      deleteCookie,
      bytes,
      lazyBytes,
      setRawMultiHeader,
      MultiHeader (..),
      text,
      html,
      file,
      json,
      stream,
      response,
      respondApp,
      respondMiddleware,
  
      -- * Middleware helpers
      middlewarePass,
      modifyVault,
      queryVault,
  
      -- * Basic HTTP-Auth
      requireBasicAuth,
      withBasicAuthData,
    )
  where
  
  import Web.Spock.Internal.CoreAction
  import qualified Web.Spock.Internal.Wire as W
  