Centralized StatisticsAPI interface Defines all methods available through the statisticsAPI global

interface StatisticsAPI {
    isCollectionActive: () => Promise<boolean>;
    startCollection: () => Promise<{ success: boolean; message?: string }>;
    stopCollection: () => Promise<{ success: boolean; message?: string }>;
    triggerAggregation: () => Promise<{ success: boolean; message?: string }>;
    getDailySkipMetrics: () => Promise<
        { success: boolean; data?: Record<string, unknown>; error?: string },
    >;
    getWeeklySkipMetrics: () => Promise<
        { success: boolean; data?: Record<string, unknown>; error?: string },
    >;
    getArtistSkipMetrics: () => Promise<
        { success: boolean; data?: Record<string, unknown>; error?: string },
    >;
    getLibraryStats: () => Promise<
        { success: boolean; data?: Record<string, unknown>; error?: string },
    >;
    getTimePatterns: () => Promise<
        { success: boolean; data?: Record<string, unknown>; error?: string },
    >;
    getSkipPatterns: () => Promise<
        { success: boolean; data?: DetectedPattern[]; error?: string },
    >;
    detectPatterns: () => Promise<{ success: boolean; message?: string }>;
    getArtistInsights: () => Promise<
        { success: boolean; data?: Record<string, unknown>; error?: string },
    >;
    getAll: () => Promise<StatisticsData>;
    getUniqueArtistCount: () => Promise<number>;
    getSkippedTracks: () => Promise<SkippedTrack[]>;
    getDailyMetrics: () => Promise<Record<string, unknown>>;
    getArtistMetrics: () => Promise<Record<string, unknown>>;
    exportSkippedTracksToCSV: () => Promise<ExportResponse>;
    exportArtistMetricsToCSV: () => Promise<ExportResponse>;
    exportDailyMetricsToCSV: () => Promise<ExportResponse>;
    exportWeeklyMetricsToCSV: () => Promise<ExportResponse>;
    exportLibraryStatisticsToCSV: () => Promise<ExportResponse>;
    exportTimePatternsToCSV: () => Promise<ExportResponse>;
    exportDetectedPatternsToCSV: () => Promise<ExportResponse>;
    exportAllToJSON: () => Promise<ExportResponse>;
    copyToClipboard: () => Promise<ExportResponse>;
}

Properties

isCollectionActive: () => Promise<boolean>
startCollection: () => Promise<{ success: boolean; message?: string }>
stopCollection: () => Promise<{ success: boolean; message?: string }>
triggerAggregation: () => Promise<{ success: boolean; message?: string }>
getDailySkipMetrics: () => Promise<
    { success: boolean; data?: Record<string, unknown>; error?: string },
>
getWeeklySkipMetrics: () => Promise<
    { success: boolean; data?: Record<string, unknown>; error?: string },
>
getArtistSkipMetrics: () => Promise<
    { success: boolean; data?: Record<string, unknown>; error?: string },
>
getLibraryStats: () => Promise<
    { success: boolean; data?: Record<string, unknown>; error?: string },
>
getTimePatterns: () => Promise<
    { success: boolean; data?: Record<string, unknown>; error?: string },
>
getSkipPatterns: () => Promise<
    { success: boolean; data?: DetectedPattern[]; error?: string },
>
detectPatterns: () => Promise<{ success: boolean; message?: string }>
getArtistInsights: () => Promise<
    { success: boolean; data?: Record<string, unknown>; error?: string },
>
getAll: () => Promise<StatisticsData>
getUniqueArtistCount: () => Promise<number>
getSkippedTracks: () => Promise<SkippedTrack[]>
getDailyMetrics: () => Promise<Record<string, unknown>>
getArtistMetrics: () => Promise<Record<string, unknown>>
exportSkippedTracksToCSV: () => Promise<ExportResponse>
exportArtistMetricsToCSV: () => Promise<ExportResponse>
exportDailyMetricsToCSV: () => Promise<ExportResponse>
exportWeeklyMetricsToCSV: () => Promise<ExportResponse>
exportLibraryStatisticsToCSV: () => Promise<ExportResponse>
exportTimePatternsToCSV: () => Promise<ExportResponse>
exportDetectedPatternsToCSV: () => Promise<ExportResponse>
exportAllToJSON: () => Promise<ExportResponse>
copyToClipboard: () => Promise<ExportResponse>