-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Mixpanel client
--   
--   Mixpanel client
@package mixpanel-client
@version 0.1.1

module MixPanel.Types.Core
newtype AuthToken
AuthToken :: Text -> AuthToken

-- | MixPanel API uses boolean logic with 1 or 0, | so we have a special
--   type for it
data Toggle
On :: Toggle
Off :: Toggle
data DidSucceed
Success :: DidSucceed
Fail :: Text -> DidSucceed
instance GHC.Show.Show MixPanel.Types.Core.DidSucceed
instance GHC.Show.Show MixPanel.Types.Core.Toggle
instance Data.Aeson.Types.ToJSON.ToJSON MixPanel.Types.Core.AuthToken
instance GHC.Generics.Generic MixPanel.Types.Core.AuthToken
instance Data.Aeson.Types.FromJSON.FromJSON MixPanel.Types.Core.DidSucceed
instance Data.Aeson.Types.ToJSON.ToJSON MixPanel.Types.Core.Toggle
instance Web.Internal.HttpApiData.ToHttpApiData MixPanel.Types.Core.Toggle

module MixPanel.Types.EngageData
data EngageData
type DistinctId = Text
mkEngageData :: AuthToken -> DistinctId -> Operation -> EngageData
data Operation
[Set] :: Object -> Operation
[SetOnce] :: Object -> Operation
[Add] :: Object -> Operation
[Append] :: Object -> Operation
[Union] :: Object -> Operation
[Remove] :: Object -> Operation
[Unset] :: Array -> Operation
[Delete] :: Operation
instance Data.Aeson.Types.ToJSON.ToJSON MixPanel.Types.EngageData.EngageData
instance Web.Internal.HttpApiData.ToHttpApiData MixPanel.Types.EngageData.EngageData
instance Data.Aeson.Types.ToJSON.ToJSON MixPanel.Types.EngageData.Operation

module MixPanel.Types.TrackData
data TrackData
TrackData :: Text -> Properties -> TrackData
[event] :: TrackData -> Text
[properties] :: TrackData -> Properties
data Properties
mkProperties :: AuthToken -> Object -> Properties
instance Data.Aeson.Types.ToJSON.ToJSON MixPanel.Types.TrackData.TrackData
instance GHC.Generics.Generic MixPanel.Types.TrackData.TrackData
instance Web.Internal.HttpApiData.ToHttpApiData MixPanel.Types.TrackData.TrackData
instance Data.Aeson.Types.ToJSON.ToJSON MixPanel.Types.TrackData.Properties

module MixPanel.API
type API = Track :<|> Engage
api :: Proxy API

module MixPanel
data MixPanelError
ServantError :: ServantError -> MixPanelError
Error :: Text -> MixPanelError
newtype AuthToken
AuthToken :: Text -> AuthToken
data Operation
[Set] :: Object -> Operation
[SetOnce] :: Object -> Operation
[Add] :: Object -> Operation
[Append] :: Object -> Operation
[Union] :: Object -> Operation
[Remove] :: Object -> Operation
[Unset] :: Array -> Operation
[Delete] :: Operation
type DistinctId = Text
mkEnv :: AuthToken -> Manager -> Env
data Env
track :: Env -> Text -> Object -> IO (Either MixPanelError ())

-- | Renames distinct id into alias id
alias :: Env -> DistinctId -> Text -> IO (Either MixPanelError ())
engage :: Env -> DistinctId -> Operation -> IO (Either MixPanelError ())

-- | Default TLS-enabled manager settings
tlsManagerSettings :: ManagerSettings

-- | Create a <a>Manager</a>. The <tt>Manager</tt> will be shut down
--   automatically via garbage collection.
--   
--   Creating a new <a>Manager</a> is a relatively expensive operation, you
--   are advised to share a single <a>Manager</a> between requests instead.
--   
--   The first argument to this function is often
--   <a>defaultManagerSettings</a>, though add-on libraries may provide a
--   recommended replacement.
--   
--   Since 0.1.0
newManager :: ManagerSettings -> IO Manager
instance GHC.Exception.Type.Exception MixPanel.MixPanelError
instance GHC.Show.Show MixPanel.MixPanelError
