001package org.nuxeo.segment.io;
002
003import java.io.Serializable;
004import java.util.Map;
005
006import org.nuxeo.ecm.core.api.NuxeoPrincipal;
007
008import com.github.segmentio.models.Providers;
009
010public interface SegmentIO {
011
012    String getWriteKey();
013
014    Map<String, String> getGlobalParameters();
015
016    void identify(NuxeoPrincipal principal);
017
018    void identify(NuxeoPrincipal principal, Map<String, Serializable> metadata);
019
020    void track(NuxeoPrincipal principal, String eventName);
021
022    void track(NuxeoPrincipal principal, String eventName,
023            Map<String, Serializable> metadata);
024
025    void flush();
026
027    Providers getProviders();
028
029    SegmentIOUserFilter getUserFilters();
030}