/**
 * Auto-Source Assignment Type Definitions
 *
 * Types for the automatic source assignment system that matches
 * scanned plugins to the curated registry and assigns download sources.
 *
 * @since v2.2.0
 */
import type { AssignmentMethod, PluginSourceType } from '../types/plugin.js';
export type { AssignmentMethod } from '../types/plugin.js';
/** Result of attempting to assign a source to a plugin */
export interface SourceAssignment {
    /** Plugin name that was matched */
    pluginName: string;
    /** Source type to use for update checking */
    type: PluginSourceType;
    /** Source-specific identifiers (resourceId, projectSlug, repoSlug, etc.) */
    identifiers: Record<string, string | number>;
    /** Confidence score from 0.0 to 1.0 */
    confidence: number;
    /** How the source was determined */
    method: AssignmentMethod;
    /** Registry plugin ID if matched from curated registry */
    registryId?: string;
}
/** Options for the auto-assigner */
export interface AutoAssignOptions {
    /** Only assign to plugins with type='manual' or no type (default: true) */
    respectManualOverrides?: boolean;
    /** Minimum confidence to auto-apply; below this becomes a suggestion (default: 0.7) */
    minConfidence?: number;
    /** Minecraft version for compatibility filtering */
    mcVersion?: string;
}
/** Summary of auto-assignment results */
export interface AutoAssignResult {
    /** Successfully assigned (confidence >= minConfidence) */
    assigned: SourceAssignment[];
    /** Below confidence threshold, presented for user review */
    suggested: SourceAssignment[];
    /** Plugins skipped (manual override or already has source) */
    skipped: string[];
    /** No match found at all */
    failed: string[];
}
//# sourceMappingURL=auto-source-types.d.ts.map