    /// Sets up the underlying service. Eg: FirebaseApp.configure()
    func setup()

    /// Identifies the user with a unique ID
    func identifyUser(with userId: String)

    /// Logs an event with it's associated metadata
    func log(event: AnalyticsEvent)
}