import type { SpecAccuracyIssue, RegistryEntry } from './analysis.js';
/** A detected reference to a potential framework API or pattern. */
export interface FrameworkReference {
    /** The framework ID this reference belongs to. */
    framework: string;
    /** The raw text snippet that was matched. */
    text: string;
    /** Type of reference extracted. */
    kind: 'api-call' | 'import' | 'config-key' | 'pattern-mention';
}
/** Result of validating a single reference against the registry. */
export interface ValidationResult {
    /** The reference that was validated. */
    reference: FrameworkReference;
    /** Classification result. */
    status: 'valid' | 'deprecated' | 'mistake' | 'unknown';
    /** Issue details, present for non-valid statuses. */
    issue?: SpecAccuracyIssue;
}
/** Raw JSON shape stored in each framework registry file. */
export interface RawRegistryEntry {
    framework: string;
    displayName: string;
    frameworkVersion: string;
    lastUpdated: string;
    ecosystem: string;
    customEntry: boolean;
    correctPatterns: unknown[];
    deprecatedPatterns: unknown[];
    commonMistakes: unknown[];
}
/** Container for custom entries saved by the user. */
export interface CustomRegistryStore {
    entries: RegistryEntry[];
}
/** Enrichment context returned by enrichWithRegistry. */
export interface RegistryEnrichment {
    /** Frameworks found in the registry that match the query. */
    matchedFrameworks: string[];
    /** Correct patterns relevant to the query topic. */
    correctPatterns: string[];
    /** Deprecated patterns the user should be aware of. */
    deprecatedWarnings: string[];
}
/** Input type for the check_spec_accuracy tool handler. */
export interface CheckSpecAccuracyInput {
    /** Text of the spec (HU.md or fragment) to validate. */
    specContent: string;
    /** Optional list of framework IDs to restrict the check. Auto-detected if omitted. */
    frameworks?: string[];
}
/** Pattern entry used in UpdateRegistryInput. */
export interface UpdatePatternEntry {
    pattern: string;
    example?: string;
    since?: string;
    replacedBy?: string;
    severity?: 'error' | 'warning';
}
/** Deprecated pattern entry used in UpdateRegistryInput. */
export interface UpdateDeprecatedEntry {
    pattern: string;
    replacedBy: string;
    severity: 'error' | 'warning';
}
/** Mistake pattern entry used in UpdateRegistryInput. */
export interface UpdateMistakeEntry {
    pattern: string;
    example?: string;
    replacedBy?: string;
    severity: 'error' | 'warning';
}
/** Input type for the update_registry tool handler. */
export interface UpdateRegistryInput {
    /** Unique machine-friendly ID, snake_case lowercase. */
    framework: string;
    /** Human-readable name. */
    displayName: string;
    /** Language/platform ecosystem. */
    ecosystem: string;
    /** Reference version range (e.g. "2.x"). */
    frameworkVersion: string;
    /** Correct and recommended patterns (min 1 required). */
    correctPatterns: UpdatePatternEntry[];
    /** Deprecated patterns with replacements. */
    deprecatedPatterns?: UpdateDeprecatedEntry[];
    /** Common LLM hallucinations or misuses. */
    commonMistakes?: UpdateMistakeEntry[];
}
//# sourceMappingURL=registry.d.ts.map