UNPKG

brickcharts

Version:

A comprehensive library for managing Billboard and Last.FM charts with visualizations and data management

56 lines (55 loc) 1.89 kB
import { ChartEntry, ChartData, TrendData, ChartAnalytics } from '../types'; /** * Normalize chart data from different sources to a common format */ export declare function normalizeChartData(rawData: any, _source: string): ChartData; /** * Parse date string or Date object and ensure it's valid */ export declare function parseDate(date: string | Date): Date; /** * Format date for display or API calls */ export declare function formatDate(date: Date, formatStr?: string): string; /** * Calculate trends between two chart datasets */ export declare function calculateTrends(currentChart: ChartData, previousChart: ChartData): TrendData[]; /** * Generate analytics for chart data */ export declare function generateChartAnalytics(currentChart: ChartData, previousChart?: ChartData): ChartAnalytics; /** * Filter chart entries by various criteria */ export declare function filterChartEntries(entries: ChartEntry[], filters: { artist?: string; genre?: string; minWeeks?: number; maxWeeks?: number; peakPosition?: number; }): ChartEntry[]; /** * Sort chart entries by various criteria */ export declare function sortChartEntries(entries: ChartEntry[], sortBy?: 'rank' | 'title' | 'artist' | 'weeks' | 'peakPosition', order?: 'asc' | 'desc'): ChartEntry[]; /** * Get week start and end dates for chart periods */ export declare function getChartWeek(date: Date): { start: Date; end: Date; }; /** * Debounce function for rate limiting API calls */ export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => void; /** * Create a hash of chart entry for comparison */ export declare function createEntryHash(entry: ChartEntry): string; /** * Validate chart data structure */ export declare function validateChartData(data: any): data is ChartData; //# sourceMappingURL=index.d.ts.map