/**
 * Co-occurrence Types
 *
 * Type definitions for plugin co-occurrence tracking and analysis.
 *
 * @since v1.66.1
 */
/**
 * Configuration for usage data collection
 */
export interface UsageDataConfig {
    /** Is data collection enabled (opt-in required) */
    enabled: boolean;
    /** Strip server identifiers for anonymity */
    anonymous: boolean;
    /** What data types to collect */
    dataTypes: {
        /** Track installed plugins */
        installedPlugins: boolean;
        /** Track plugin versions */
        pluginVersions: boolean;
        /** Track server type (Spigot/Paper/etc.) */
        serverType: boolean;
        /** Track update patterns */
        updatePatterns: boolean;
    };
    /** Minimum days between reports */
    reportInterval: number;
    /** Last report timestamp */
    lastReportAt?: number;
}
/**
 * Anonymous usage report sent to API
 */
export interface AnonymousUsageReport {
    /** SHA256 hash of machine ID (not reversible) */
    hash: string;
    /** List of plugin IDs installed */
    plugins: string[];
    /** Server platform type */
    serverType: string;
    /** Minecraft version */
    mcVersion: string;
    /** Report timestamp */
    timestamp: number;
    /** Pluginator version */
    pluginatorVersion: string;
}
/**
 * Local co-occurrence tracking record
 */
export interface LocalCooccurrenceRecord {
    /** When tracking started */
    trackingStarted: number;
    /** Total observations (scans) */
    totalObservations: number;
    /** Plugin pair co-occurrences */
    pairs: Array<{
        pluginA: string;
        pluginB: string;
        count: number;
        lastSeen: number;
    }>;
    /** Last updated timestamp */
    lastUpdated: number;
}
/**
 * Co-occurrence statistics for a plugin pair
 */
export interface PairStatistics {
    /** Plugin A ID */
    pluginA: string;
    /** Plugin B ID */
    pluginB: string;
    /** Co-occurrence probability (0-1) */
    probability: number;
    /** Number of observations */
    sampleSize: number;
    /** Confidence level based on sample size */
    confidence: 'low' | 'medium' | 'high';
    /** Standard deviation */
    stdDev?: number;
    /** Trend direction over time */
    trend?: 'increasing' | 'stable' | 'decreasing';
}
/**
 * Community co-occurrence data from API
 */
export interface CommunityCooccurrenceData {
    /** Data version */
    version: string;
    /** When data was generated */
    generatedAt: number;
    /** Total servers in sample */
    totalServers: number;
    /** Co-occurrence entries */
    entries: Array<{
        pluginA: string;
        pluginB: string;
        probability: number;
        sampleSize: number;
    }>;
    /** Data freshness indicator */
    staleness: 'fresh' | 'recent' | 'stale';
}
/**
 * A/B test configuration for algorithms
 */
export interface ABTestConfig {
    /** Test ID */
    id: string;
    /** Test name */
    name: string;
    /** Description of what's being tested */
    description: string;
    /** Algorithm variants */
    variants: Array<{
        id: string;
        name: string;
        weight: number;
        config: Record<string, unknown>;
    }>;
    /** Start date */
    startDate: number;
    /** End date (undefined = ongoing) */
    endDate?: number;
    /** Is test active */
    active: boolean;
}
/**
 * A/B test result metrics
 */
export interface ABTestMetrics {
    /** Test ID */
    testId: string;
    /** Variant ID */
    variantId: string;
    /** Number of users exposed */
    exposures: number;
    /** Number of clicks/installs */
    conversions: number;
    /** Conversion rate */
    conversionRate: number;
    /** Average recommendation score of installed plugins */
    avgRecommendationScore: number;
    /** User satisfaction (if collected) */
    satisfaction?: number;
}
/**
 * Default usage data configuration
 */
export declare const DEFAULT_USAGE_CONFIG: UsageDataConfig;
/**
 * Confidence thresholds for statistics
 */
export declare const CONFIDENCE_THRESHOLDS: {
    readonly low: 50;
    readonly medium: 200;
    readonly high: 200;
};
//# sourceMappingURL=cooccurrence-types.d.ts.map