export declare enum VisitedScreenEnum {
    HOME = "home",
    ACTIVITIES = "activities",
    BLOCKS = "blocks",
    BLOCKSJR = "blocksjr",
    CONFIG = "config",
    SENSORS_DASHBOARD = "sens-dash",
    CODEWHEEL = "codewheel",
    MAZE = "maze",
    JUMPING_GAME = "jumping-game",
    ROBOFLY_GAME = "robofly-game",
    CONTROLLER = "controller",
    CALIBRATION = "calibration",
    HELP = "help",
    GAMES = "games",
    SKIING_GAME = "skiing-game"
}
export type VisitedActivityType = string;
export declare enum HeartbeatTypeEnum {
    SESSION = "session",
    SCREEN = "screen",
    ACTIVITY = "activity"
}
export declare enum AnalyticsAppRuntime {
    WEB_APP = "web-app",
    PHONE_APP = "phone-app",
    UNKNOWN = "unknown"
}
export declare enum AnalyticsDeviceFormFactor {
    DESKTOP = "desktop",
    TABLET = "tablet",
    PHONE = "phone",
    UNKNOWN = "unknown"
}
export declare enum AnalyticsDevicePlatform {
    WEB_DESKTOP = "web-desktop",
    WEB_TABLET = "web-tablet",
    WEB_PHONE = "web-phone",
    CHROMEBOOK = "chromebook",
    IPAD = "ipad",
    IOS_PHONE = "ios-phone",
    ANDROID_TABLET = "android-tablet",
    ANDROID_PHONE = "android-phone",
    UNKNOWN = "unknown"
}
export type AnalyticsDeviceInfo = {
    runtime: AnalyticsAppRuntime;
    platform: AnalyticsDevicePlatform;
    formFactor: AnalyticsDeviceFormFactor;
    osName: string;
    osVersionMajor?: string;
    browserName?: string;
    browserVersionMajor?: string;
    appVersion?: string;
};
export type DevicePlatformTotalsProcessedData = {
    windowDays: number;
    generatedAt: string;
    sessionsByPlatform: Record<string, number>;
    uniqueDevicesByPlatform: Record<string, number>;
    totalSessions: number;
    totalUniqueDevices: number;
    legacySessionsExcluded: number;
};
export declare enum ServerEndpoints {
    TRACK_CONSENT = "track-consent",
    START_SESSION = "start-session",
    HEARTBEAT = "heartbeat",
    SCREEN_VISIT = "screen-visit",
    ACTIVITY_VISIT = "activity-visit",
    GET_CONSENT_RAW_DATA = "get-consent-raw-data",
    GET_SESSIONS_RAW_DATA = "get-sessions-raw-data",
    GET_SESSION_HEARTBEATS_RAW_DATA = "get-session-heartbeats-raw-data",
    GET_SCREEN_HEARTBEATS_RAW_DATA = "get-screen-heartbeats-raw-data",
    GET_SCREEN_VISITS_RAW_DATA = "get-screen-visits-raw-data",
    GET_ACTIVITY_VISITS_RAW_DATA = "get-activity-visits-raw-data",
    GET_ACTIVITY_HEARTBEATS_RAW_DATA = "get-activity-heartbeats-raw-data",
    GET_SESSIONS_N_PER_WEEK_PROCESSED_DATA = "get-sessions-n-per-week-processed-data",
    GET_UNIQUE_DEVICES_N_PER_WEEK_PROCESSED_DATA = "get-unique-devices-n-per-week-processed-data",
    GET_UNIQUE_COGS_N_PER_WEEK_PROCESSED_DATA = "get-unique-cogs-n-per-week-processed-data",
    GET_UNIQUE_MARTYS_N_PER_WEEK_PROCESSED_DATA = "get-unique-martys-n-per-week-processed-data",
    GET_VISITED_SCREENS_FREQUENCY_PER_WEEK_PROCESSED_DATA = "get-visited-screens-frequency-per-week-processed-data",
    GET_VISITED_ACTIVITIES_FREQUENCY_PER_WEEK_PROCESSED_DATA = "get-visited-activities-frequency-per-week-processed-data",
    GET_SESSIONS_TIME_SPENT_PER_WEEK_PROCESSED_DATA = "get-sessions-time-spent-per-week-processed-data",
    GET_SCREENS_TIME_SPENT_PER_WEEK_PROCESSED_DATA = "get-screens-time-spent-per-week-processed-data",
    GET_ACTIVITIES_TIME_SPENT_PER_WEEK_PROCESSED_DATA = "get-activities-time-spent-per-week-processed-data",
    GET_COG_RETENTION_RATE_PER_WEEK_PROCESSED_DATA = "get-cog-retention-rate-per-week-processed-data",
    GET_MARTY_RETENTION_RATE_PER_WEEK_PROCESSED_DATA = "get-marty-retention-rate-per-week-processed-data",
    GET_DEVICE_PLATFORM_TOTALS_PROCESSED_DATA = "get-device-platform-totals-processed-data"
}
export type DateFilter = {
    fromDate: string;
    toDate: string;
};
export type ServerEndpointsData = {
    [ServerEndpoints.TRACK_CONSENT]: {
        consent: boolean;
    };
    [ServerEndpoints.START_SESSION]: {
        sessionId: string;
        deviceId: string;
        robotId: string;
        raftType: string;
        createdAt?: string;
        deviceInfo?: AnalyticsDeviceInfo;
    };
    [ServerEndpoints.HEARTBEAT]: {
        id: string;
        isNewDoc?: boolean;
        type: HeartbeatTypeEnum;
        sessionId: string;
        screen?: VisitedScreenEnum;
        activity?: VisitedActivityType;
        createdAt?: string;
        lastUpdated?: string;
    };
    [ServerEndpoints.SCREEN_VISIT]: {
        screen: VisitedScreenEnum;
        sessionId: string;
        deviceId: string;
        robotId: string;
        raftType: string;
        createdAt?: string;
    };
    [ServerEndpoints.ACTIVITY_VISIT]: {
        activity: VisitedActivityType;
        sessionId: string;
        deviceId: string;
        robotId: string;
        raftType: string;
        createdAt?: string;
    };
    [ServerEndpoints.GET_CONSENT_RAW_DATA]: {};
    [ServerEndpoints.GET_SESSIONS_RAW_DATA]: DateFilter;
    [ServerEndpoints.GET_SESSION_HEARTBEATS_RAW_DATA]: DateFilter;
    [ServerEndpoints.GET_SCREEN_HEARTBEATS_RAW_DATA]: DateFilter;
    [ServerEndpoints.GET_SCREEN_VISITS_RAW_DATA]: DateFilter;
    [ServerEndpoints.GET_ACTIVITY_VISITS_RAW_DATA]: DateFilter;
    [ServerEndpoints.GET_ACTIVITY_HEARTBEATS_RAW_DATA]: DateFilter;
    [ServerEndpoints.GET_SESSIONS_N_PER_WEEK_PROCESSED_DATA]: {};
    [ServerEndpoints.GET_UNIQUE_DEVICES_N_PER_WEEK_PROCESSED_DATA]: {};
    [ServerEndpoints.GET_UNIQUE_COGS_N_PER_WEEK_PROCESSED_DATA]: {};
    [ServerEndpoints.GET_UNIQUE_MARTYS_N_PER_WEEK_PROCESSED_DATA]: {};
    [ServerEndpoints.GET_VISITED_SCREENS_FREQUENCY_PER_WEEK_PROCESSED_DATA]: {};
    [ServerEndpoints.GET_VISITED_ACTIVITIES_FREQUENCY_PER_WEEK_PROCESSED_DATA]: {};
    [ServerEndpoints.GET_SESSIONS_TIME_SPENT_PER_WEEK_PROCESSED_DATA]: {};
    [ServerEndpoints.GET_SCREENS_TIME_SPENT_PER_WEEK_PROCESSED_DATA]: {};
    [ServerEndpoints.GET_ACTIVITIES_TIME_SPENT_PER_WEEK_PROCESSED_DATA]: {};
    [ServerEndpoints.GET_COG_RETENTION_RATE_PER_WEEK_PROCESSED_DATA]: {};
    [ServerEndpoints.GET_MARTY_RETENTION_RATE_PER_WEEK_PROCESSED_DATA]: {};
    [ServerEndpoints.GET_DEVICE_PLATFORM_TOTALS_PROCESSED_DATA]: {};
};
export declare enum FirestoreCollectionsRawEnum {
    CONSENTS = "consents",
    SESSIONS = "sessions",
    SESSION_HEARTBEATS = "sessionHeartbeats",
    SCREEN_HEARTBEATS = "screenHeartbeats",
    SCREEN_VISITS = "screenVisits",
    ACTIVITY_VISITS = "activityVisits",
    ACTIVITY_HEARTBEATS = "activityHeartbeats"
}
export declare enum FirestoreCollectionsProcessedEnumLevel1 {
    SESSIONS = "sessions",
    DEVICES = "devices",
    ROBOTS = "robots",
    SCREENS = "screens",
    ACTIVITIES = "activities",
    HEARTBEATS = "heartbeats",
    METADATA = "metadata"
}
export declare enum FirestoreCollectionsProcessedEnumLevel2 {
    SESSIONS_N_PER_WEEK = "sessionsNPerWeek",
    SESSIONS_N_PER_WEEK_METADATA = "sessionsNPerWeekMetadata",
    UNIQUE_DEVICES_N_PER_WEEK = "uniqueDevicesNPerWeek",
    UNIQUE_DEVICES_N_PER_WEEK_METADATA = "uniqueDevicesNPerWeekMetadata",
    VISITED_SCREENS_FREQUENCY_PER_WEEK = "visitedScreensFrequencyPerWeek",
    VISITED_SCREENS_FREQUENCY_PER_WEEK_METADATA = "visitedScreensFrequencyPerWeekMetadata",
    VISITED_ACTIVITIES_FREQUENCY_PER_WEEK = "visitedActivitiesFrequencyPerWeek",
    VISITED_ACTIVITIES_FREQUENCY_PER_WEEK_METADATA = "visitedActivitiesFrequencyPerWeekMetadata",
    UNIQUE_COGS_PER_WEEK = "uniqueCogsPerWeek",
    UNIQUE_COGS_PER_WEEK_METADATA = "uniqueCogsPerWeekMetadata",
    UNIQUE_MARTYS_PER_WEEK = "uniqueMartysPerWeek",
    UNIQUE_MARTYS_PER_WEEK_METADATA = "uniqueMartysPerWeekMetadata",
    SESSIONS_TIME_SPENT_PER_WEEK = "sessionsTimeSpentPerWeek",
    SESSIONS_TIME_SPENT_PER_WEEK_METADATA = "sessionsTimeSpentPerWeekMetadata",
    SCREENS_TIME_SPENT_PER_WEEK = "screensTimeSpentPerWeek",
    SCREENS_TIME_SPENT_PER_WEEK_METADATA = "screensTimeSpentPerWeekMetadata",
    ACTIVITIES_TIME_SPENT_PER_WEEK = "activitiesTimeSpentPerWeek",
    ACTIVITIES_TIME_SPENT_PER_WEEK_METADATA = "activitiesTimeSpentPerWeekMetadata",
    COG_RETENTION_RATE_PER_WEEK = "cogRetentionRatePerWeek",
    COG_RETENTION_RATE_PER_WEEK_METADATA = "cogRetentionRatePerWeekMetadata",
    MARTY_RETENTION_RATE_PER_WEEK = "martyRetentionRatePerWeek",
    MARTY_RETENTION_RATE_PER_WEEK_METADATA = "martyRetentionRatePerWeekMetadata",
    DEVICE_PLATFORM_TOTALS = "devicePlatformTotals"
}
export type FirestoreConsentCountersRawData = {
    negativeConsents: number;
    positiveConsents: number;
}[];
export type FirestoreSessionsRawData = (Omit<ServerEndpointsData[ServerEndpoints.START_SESSION], 'createdAt'> & {
    createdAt: string;
})[];
export type FirestoreScreenVisitsRawData = (Omit<ServerEndpointsData[ServerEndpoints.SCREEN_VISIT], 'createdAt'> & {
    createdAt: string;
})[];
export type FirestoreActivityVisitsRawData = (Omit<ServerEndpointsData[ServerEndpoints.ACTIVITY_VISIT], 'createdAt'> & {
    createdAt: string;
})[];
export type FirestoreSessionHeartbeatsRawData = (Omit<ServerEndpointsData[ServerEndpoints.HEARTBEAT], 'createdAt' | 'lastUpdated' | 'isNewDoc'> & {
    createdAt: string;
    lastUpdated: string;
})[];
export type FirestoreScreenHeartbeatsRawData = (Omit<ServerEndpointsData[ServerEndpoints.HEARTBEAT], 'createdAt' | 'lastUpdated' | 'isNewDoc' | 'screen'> & {
    createdAt: string;
    lastUpdated: string;
    screen: VisitedScreenEnum;
})[];
export type FirestoreActivityHeartbeatsRawData = (Omit<ServerEndpointsData[ServerEndpoints.HEARTBEAT], 'createdAt' | 'lastUpdated' | 'isNewDoc' | 'activity'> & {
    createdAt: string;
    lastUpdated: string;
    activity: VisitedActivityType;
})[];
