import { ModelId } from './types'; import { FieldAuditRecord, FieldAuditEntry } from './projectFieldAudit'; /** 감사 대상 종류 — 엔티티 자신 또는 자식 컬렉션. */ export type EntityAuditSubjectKind = 'entity' | 'attribute' | 'operation' | 'index'; /** 무엇이 바뀐 대상인가 — 피드에서 필드 값과 함께 표시. */ export interface EntityAuditSubject { kind: EntityAuditSubjectKind; /** 대상 ref. kind='entity'면 엔티티 자신(entityRef와 동일). */ ref: ModelId; } /** 엔티티 감사 피드 한 엔트리 — projectFieldAudit 엔트리 + 어느 대상인지(subject). */ export interface EntityAuditEntry extends FieldAuditEntry { subject: EntityAuditSubject; } /** * 한 엔티티의 감사 피드(엔티티 자신 + 모든 자식 속성/연산/인덱스의 필드 변경)를 seq 순으로 반환한다. * * @param records seq 정렬 이력 레코드(projectFieldAudit와 동일 입력). 필요 시 방어적 재정렬은 하위가 수행. * @param entityRef 대상 엔티티. * @returns seq 오름차순 병합 피드(각 엔트리에 subject 태그). 동일 seq는 원 삽입 순서 유지(안정 정렬). */ export declare function projectEntityAudit(records: readonly FieldAuditRecord[], entityRef: ModelId): EntityAuditEntry[];