/**
 * Compare two CAE registry SQLite version snapshots (CAEUX-P2-02 / T100087).
 */
export type CaeRegistrySqliteArtifactRow = {
    version_id: string;
    artifact_id: string;
    artifact_type: string;
    path: string;
    title: string | null;
    description: string | null;
    metadata_json: string;
    retired_at: string | null;
};
export type CaeRegistrySqliteActivationRow = {
    version_id: string;
    activation_id: string;
    family: string;
    priority: number;
    lifecycle_state: string;
    scope_json: string;
    artifact_refs_json: string;
    acknowledgement_json: string | null;
    metadata_json: string;
    retired_at: string | null;
};
export type CompareCaeRegistryVersionsInput = {
    workspaceRoot: string;
    fromVersionId: string;
    toVersionId: string;
    fromArtifacts: CaeRegistrySqliteArtifactRow[];
    toArtifacts: CaeRegistrySqliteArtifactRow[];
    fromActivations: CaeRegistrySqliteActivationRow[];
    toActivations: CaeRegistrySqliteActivationRow[];
    includeFileContentHashes?: boolean;
};
export type CaeRegistryVersionCompareData = {
    schemaVersion: 1;
    fromVersionId: string;
    toVersionId: string;
    artifacts: {
        added: string[];
        removed: string[];
        changed: string[];
        retired: string[];
        hidden: string[];
        conflicting: Array<{
            kind: "duplicate_path";
            scope: "from" | "to";
            path: string;
            artifactIds: string[];
        } | {
            kind: "path_mismatch_same_id";
            artifactId: string;
            fromPath: string;
            toPath: string;
        }>;
    };
    activations: {
        added: string[];
        removed: string[];
        changed: string[];
        retired: string[];
        hidden: string[];
        conflicting: string[];
    };
    fileContentHashDiffs?: Array<{
        artifactId: string;
        fromPath: string;
        toPath: string;
        fromSha: string | null;
        toSha: string | null;
    }>;
};
export declare function compareCaeRegistryVersions(input: CompareCaeRegistryVersionsInput): CaeRegistryVersionCompareData;
