import { EntityAuditService } from '../services/entity-audit.service'; import { TransactionAuditService } from '../services/transaction-audit.service'; import { AuditLogQueryDto, AuditActionQueryDto, CompareEntitiesDto, RestoreEntityDto, PreCheckRestoreDto, BeginTransactionDto } from '../dto'; import { EntityAuditLogEntity } from '../entities'; import { EntityDifference, PreCheckResult, RestoreResult } from '../interfaces'; import { PageDto } from '../../common/dto'; /** * 审计控制器 */ export declare class AuditController { private readonly entityAuditService; private readonly transactionAuditService; constructor(entityAuditService: EntityAuditService, transactionAuditService: TransactionAuditService); /** * 查询实体审计日志 */ getAuditLogs(query: AuditLogQueryDto): Promise>; /** * 比较实体版本 */ compareEntities(query: CompareEntitiesDto): Promise; /** * 预检查恢复操作 */ preCheckRestore(preCheckDto: PreCheckRestoreDto): Promise; /** * 恢复实体到指定版本 */ restoreEntity(restoreDto: RestoreEntityDto): Promise; /** * 开始审计事务 */ beginTransaction(beginTransactionDto: BeginTransactionDto): Promise<{ transactionId: string; }>; /** * 提交审计事务 */ commitTransaction(transactionId: string): Promise; /** * 回滚审计事务 */ rollbackTransaction(transactionId: string): Promise; /** * 查询审计动作汇总记录 */ getAuditActions(query: AuditActionQueryDto): Promise>; /** * 查询单个审计动作的详细信息 */ getAuditActionDetail(actionId: string): Promise<{ summary: { id: string; actionName: string; operationTemplateKey: string; description: string; descriptionParams: Record; success: boolean; errorMessage: string; duration: number; userId: string; username: string; requestId: string; requestIp: string; userAgent: string; entityChangesCount: number; entityTypes: string[]; operationStats: Record; createdAt: Date; metadata: Record; }; entityChanges: EntityAuditLogEntity[]; detailedChanges: { id: string; entityType: string; entityId: string; operation: import("..").AuditOperation; operationLabel: string; description: string; sequenceInAction: number; createdAt: Date; oldValue: Record; newValue: Record; changeDetails: import("../interfaces").ChangeDetail[]; changedFieldsCount: number; changedFields: string[]; }[]; statistics: { totalChanges: number; totalFieldChanges: number; byEntityType: Record; byOperation: Record; operationSequence: { sequence: number; entityType: string; operation: import("..").AuditOperation; }[]; }; }>; }