export interface PromptVersion {
    /** Auto-incremented version number (1, 2, 3...) */
    version: number;
    /** Human-readable label, e.g. "add-safety-rules" or "v2-concise" */
    label: string;
    /** The full system prompt text */
    content: string;
    /** ISO timestamp when this version was saved */
    createdAt: string;
    /** Optional author name */
    author?: string;
    /** Optional description of what changed */
    changelog?: string;
    /** Optional tags */
    tags?: string[];
    /** HMAC-SHA256 of version+label+content+createdAt. Detects file tampering. */
    signature?: string;
}
export interface PromptDiff {
    fromVersion: number;
    toVersion: number;
    /** Lines added (prefixed with +) */
    added: string[];
    /** Lines removed (prefixed with -) */
    removed: string[];
    /** Total number of changed lines */
    totalChanges: number;
    /** Similarity ratio 0.0–1.0 between the two versions */
    similarity: number;
}
export interface PromptRegistry {
    /** The prompt name / identifier, e.g. "main-system-prompt" or "coding-agent" */
    name: string;
    /** All versions, ordered by version number ascending */
    versions: PromptVersion[];
    /** Which version number is currently active */
    activeVersion: number;
}
export declare function getVersion(registry: PromptRegistry, version: number): PromptVersion | undefined;
export declare function diffVersions(registry: PromptRegistry, fromVersion: number, toVersion: number): PromptDiff | undefined;
export declare function renderPromptHistory(registry: PromptRegistry): string;
export declare function loadRegistry(projectDir: string, name: string): Promise<PromptRegistry | undefined>;
export declare function listRegistries(projectDir: string): Promise<string[]>;
export declare function savePromptVersion(projectDir: string, name: string, content: string, opts?: {
    label?: string;
    author?: string;
    changelog?: string;
    tags?: string[];
}): Promise<PromptVersion>;
export declare function getActivePrompt(projectDir: string, name: string): Promise<PromptVersion | undefined>;
export declare function setActiveVersion(projectDir: string, name: string, version: number): Promise<boolean>;
export declare function rollback(projectDir: string, name: string): Promise<PromptVersion | undefined>;
//# sourceMappingURL=versionedPrompts.d.ts.map