export interface DownloadRecord {
    id: string;
    timestamp: string;
    campaignId: number;
    downloadType: string;
    format: string;
    userId?: string;
    machineId: string;
    ipAddress?: string;
}
/**
 * Track a download event
 * @param campaignId The ID of the campaign being downloaded
 * @param downloadType The type of download (analytics, leads, etc.)
 * @param format The format of the download (json, csv)
 * @param userId Optional user identifier
 * @param ipAddress Optional IP address of the requester
 * @returns The unique ID of the download record
 */
export declare const trackDownload: (campaignId: number, downloadType: string, format: string, userId?: string, ipAddress?: string) => string;
/**
 * Get all download records
 * @returns Array of download records
 */
export declare const getDownloadRecords: () => DownloadRecord[];
/**
 * Get download statistics
 * @returns Statistics about downloads
 */
export declare const getDownloadStats: () => {
    totalDownloads: number;
    uniqueUsers: number;
    byType: Record<string, number>;
    byFormat: Record<string, number>;
    byCampaign: Record<number, number>;
    byDate: Record<string, number>;
};
