brickcharts
Version:
A comprehensive library for managing Billboard and Last.FM charts with visualizations and data management
56 lines (55 loc) • 1.89 kB
TypeScript
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