/** A window seed proves presence at the boundary, not a change in that commit. */
export function isEntityWindowSeed(event) {
    return event.changeType === 'added' && event.flags.birthAtWindowBoundary === true;
}
/**
 * Classify one persisted lineage event without guessing across missing evidence.
 *
 * This is shared by history-derived aggregates so hotspots and co-change agree
 * on what "changed" means. In particular, pure moves/renames do not become
 * behavioural coupling merely because two entities travelled in one commit.
 */
export function classifyEntityEvent(event) {
    if (isEntityWindowSeed(event))
        return 'neutral';
    if (event.flags.logicChanged || event.changeType === 'modified_logic')
        return 'logic';
    if (event.changeType === 'added' || event.changeType === 'deleted')
        return 'logic';
    if (event.flags.cosmeticOnly || event.changeType === 'modified_cosmetic')
        return 'cosmetic';
    if (event.changeType === 'moved' || event.changeType === 'renamed' || event.changeType === 'reordered') {
        return 'neutral';
    }
    return 'unknown';
}
//# sourceMappingURL=change-class.js.map