@iota-big3/sdk-regulated
Version:
Regulated Industries SDK for Healthcare, Finance, and Government
137 lines • 3.74 kB
TypeScript
import { DataClassification } from '../compliance/types';
export { DataClassification } from '../compliance/types';
export interface UnifiedAuditEntry {
id: string;
timestamp: Date;
userId: string;
action: string;
resource: string;
resourceId: string;
result: 'success' | 'failure' | 'blocked';
ipAddress?: string;
userAgent?: string;
details?: Record<string, any>;
metadata?: Record<string, any>;
}
export interface ComplianceAuditEntry extends UnifiedAuditEntry {
dataClassification: DataClassification;
reason?: string;
complianceFramework?: string;
controlId?: string;
violation?: boolean;
remediationRequired?: boolean;
}
export interface FinanceAuditEntry extends UnifiedAuditEntry {
transactionId?: string;
accountId?: string;
amount?: number;
currency?: string;
cardDataAccessed?: boolean;
tokenUsed?: string;
integrityHash?: string;
}
export interface HealthcareAuditEntry extends UnifiedAuditEntry {
patientId?: string;
empiId?: string;
phiAccessed?: boolean;
consentId?: string;
purposeOfUse?: string;
emergencyAccess?: boolean;
}
export interface GovernmentAuditEntry extends UnifiedAuditEntry {
dataClassification: DataClassification;
citizenId?: string;
credentialType?: string;
assuranceLevel?: string;
systemId?: string;
controlId?: string;
jurisdiction?: string;
}
export type TimerHandle = NodeJS.Timeout;
export type ImmediateHandle = NodeJS.Immediate;
export type OperationStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'cancelled';
export type ComplianceStatus = 'compliant' | 'non_compliant' | 'partial' | 'not_applicable';
export type ValidationStatus = 'valid' | 'invalid' | 'expired' | 'pending';
export interface OperationResult<T = any> {
success: boolean;
data?: T;
error?: {
code: string;
message: string;
details?: any;
};
auditEntry?: UnifiedAuditEntry;
}
export declare class RegulatedIndustryError extends Error {
code: string;
details?: any | undefined;
auditRequired: boolean;
constructor(code: string, message: string, details?: any | undefined, auditRequired?: boolean);
}
export interface CommonConfig {
environment: 'development' | 'staging' | 'production';
region?: string;
timezone?: string;
auditRetentionDays: number;
encryptionRequired: boolean;
debugMode: boolean;
}
export interface EntityMetadata {
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
version: number;
tags?: string[];
customFields?: Record<string, any>;
}
export interface PaginationParams {
page: number;
pageSize: number;
sortBy?: string;
sortOrder?: 'asc' | 'desc';
filters?: Record<string, any>;
}
export interface PaginatedResult<T> {
data: T[];
pagination: {
page: number;
pageSize: number;
totalPages: number;
totalItems: number;
hasNext: boolean;
hasPrevious: boolean;
};
}
export interface ValidationRule {
field: string;
rules: string[];
message?: string;
}
export interface ValidationResult {
valid: boolean;
errors: Array<{
field: string;
rule: string;
message: string;
}>;
}
export interface BaseEvent {
eventId: string;
eventType: string;
timestamp: Date;
source: string;
version: string;
data: any;
}
export interface SecurityContext {
userId: string;
roles: string[];
permissions: string[];
sessionId: string;
ipAddress: string;
userAgent: string;
mfaVerified: boolean;
authenticationTime: Date;
}
//# sourceMappingURL=common.d.ts.map