import type { RulesManifest, RulesManifestEntry } from '../../types/universal-rules/index.js';
/**
 * Compute SHA-256 hex hash of a string.
 */
export declare function hashContent(content: string): string;
/**
 * Read and parse the .planu-rules-manifest.json file.
 * Returns null if the file doesn't exist or can't be parsed.
 */
export declare function readManifest(manifestPath: string): Promise<RulesManifest | null>;
/**
 * Check if the content of a file on disk matches the hash stored at install time.
 * Returns true if the user has modified the file (disk hash ≠ install hash).
 * Returns false if file matches or the manifest entry is missing.
 */
export declare function isUserModified(ruleId: string, manifestPath: string): Promise<boolean>;
/**
 * Build an updated manifest by adding or replacing an entry for the given rule.
 */
export declare function upsertManifestEntry(manifest: RulesManifest, newEntry: RulesManifestEntry): RulesManifest;
//# sourceMappingURL=user-edit-detector.d.ts.map