import { type ProposedChangeEnvelope, type RepositoryGraphSnapshot, type SemanticAdvisoryFinding, type SemanticAdvisoryProvider } from '@neurcode-ai/contracts'; declare const REGISTRY_SCHEMA_VERSION: "neurcode.semantic-advisory-registry.v2"; export type SemanticFeedbackOutcome = 'accepted' | 'dismissed' | 'duplicate' | 'useful'; interface CachedAdvisoryResult { createdAt: string; graphId: string; graphGeneration: number; contentHash: string | null; findings: SemanticAdvisoryFinding[]; } interface SemanticFeedbackAggregate { category: SemanticAdvisoryFinding['category']; counts: Record; updatedAt: string; } export interface SemanticAdvisoryRegistryData { schemaVersion: typeof REGISTRY_SCHEMA_VERSION; updatedAt: string; suppressions: string[]; cache: Record; feedback: Record; privacy: { sourceUploaded: false; sourceStored: false; rawContentRetained: false; }; } export interface SemanticAdvisoryStatus { path: string; suppressions: string[]; cacheEntries: number; feedback: Record; privacy: SemanticAdvisoryRegistryData['privacy']; } export declare class SemanticAdvisoryRegistry { private readonly repoRoot; constructor(repoRoot: string); read(): SemanticAdvisoryRegistryData; write(registry: SemanticAdvisoryRegistryData): void; suppress(key: string): SemanticAdvisoryStatus; unsuppress(key: string): SemanticAdvisoryStatus; recordFeedback(input: { findingId: string; category: SemanticAdvisoryFinding['category']; outcome: SemanticFeedbackOutcome; }): SemanticAdvisoryStatus; status(): SemanticAdvisoryStatus; } export declare class LocalStructuralSemanticAdvisoryProvider implements SemanticAdvisoryProvider { readonly providerId = "neurcode.local-structural-advisory.v2"; readonly privacyMode: "local_only"; analyze(input: { graph: RepositoryGraphSnapshot; change: ProposedChangeEnvelope; suppressions: string[]; }): Promise; } export declare function semanticAdvisoryCacheKey(graph: RepositoryGraphSnapshot, change: ProposedChangeEnvelope, suppressions: string[], providerId?: string): string; export declare function runSemanticAdvisory(input: { repoRoot: string; graph: RepositoryGraphSnapshot; change: ProposedChangeEnvelope; provider?: SemanticAdvisoryProvider; }): Promise<{ findings: SemanticAdvisoryFinding[]; cacheHit: boolean; cacheKey: string; }>; export declare function semanticAdvisoryRegistryPath(repoRoot: string): string; export {}; //# sourceMappingURL=semantic-advisory-v2.d.ts.map