/**
 * Usage Collection Service
 *
 * Handles opt-in anonymous usage data collection for improving recommendations.
 *
 * @since v1.66.1
 */
import type { AnonymousUsageReport, UsageDataConfig } from './cooccurrence-types.js';
/**
 * Service for managing anonymous usage data collection
 */
export declare class UsageCollectionService {
    private config;
    private configPath;
    private machineHash;
    constructor(dataDir: string, machineId: string);
    /**
     * Initialize the service
     */
    initialize(): Promise<void>;
    /**
     * Hash machine ID for anonymity
     */
    private hashMachineId;
    /**
     * Load configuration from disk
     */
    private loadConfig;
    /**
     * Save configuration to disk
     */
    saveConfig(): Promise<void>;
    /**
     * Check if data collection is enabled
     */
    isEnabled(): boolean;
    /**
     * Enable data collection (opt-in)
     */
    enable(): Promise<void>;
    /**
     * Disable data collection
     */
    disable(): Promise<void>;
    /**
     * Get current configuration
     */
    getConfig(): UsageDataConfig;
    /**
     * Update configuration
     */
    updateConfig(updates: Partial<UsageDataConfig>): Promise<void>;
    /**
     * Check if it's time to send a report
     */
    shouldReport(): boolean;
    /**
     * Create an anonymous usage report
     */
    createReport(pluginIds: string[], pluginVersions: Map<string, string>, serverType: string, mcVersion: string, pluginatorVersion: string): AnonymousUsageReport | null;
    /**
     * Mark report as sent
     */
    markReportSent(): Promise<void>;
    /**
     * Get privacy-safe summary of what data would be sent
     */
    getDataSummary(pluginIds: string[], serverType: string, mcVersion: string): {
        willSend: string[];
        willNotSend: string[];
    };
    /**
     * Get consent text for user display
     */
    getConsentText(): string;
}
/**
 * Get or create the usage collection service
 */
export declare function getUsageCollectionService(dataDir: string, machineId: string): UsageCollectionService;
/**
 * Reset the service instance (for testing)
 */
export declare function resetUsageCollectionService(): void;
//# sourceMappingURL=usage-collection.d.ts.map