UNPKG

@tantainnovative/ndpr-toolkit

Version:

Nigeria Data Protection Toolkit — enterprise-grade compliance components for the Nigeria Data Protection Act (NDPA) 2023

154 lines (141 loc) 5.6 kB
import React__default from 'react'; /** * Analyzes all processing activities and returns compliance gaps including * missing DPO approval, overdue reviews, undocumented justifications, * missing LIA for legitimate interests, and other documentation issues. * * @param activities Array of processing activities to analyze * @returns Array of identified compliance gaps */ export declare function assessComplianceGaps(activities: ProcessingActivity[]): LawfulBasisComplianceGap[]; /** * Generates a summary of all lawful basis documentation across processing activities. * * @param activities Array of processing activities to summarize * @returns LawfulBasisSummary with counts, breakdowns, and flagged activities */ export declare function generateLawfulBasisSummary(activities: ProcessingActivity[]): LawfulBasisSummary; /** * Compliance gap identified across processing activities */ export declare interface LawfulBasisComplianceGap { activityId: string; activityName: string; type: 'missing_approval' | 'overdue_review' | 'missing_justification' | 'missing_lia' | 'missing_sensitive_condition' | 'missing_retention' | 'missing_data_categories' | 'missing_purposes'; severity: 'high' | 'medium' | 'low'; description: string; } /** * Summary of all lawful basis documentation for compliance reporting */ export declare interface LawfulBasisSummary { /** Total number of processing activities */ totalActivities: number; /** Breakdown by lawful basis */ byBasis: Record<LawfulBasisType, number>; /** Number of activities involving sensitive data */ sensitiveDataActivities: number; /** Number of activities involving cross-border transfers */ crossBorderActivities: number; /** Activities due for review */ activitiesDueForReview: ProcessingActivity[]; /** Activities without DPO approval */ activitiesWithoutApproval: ProcessingActivity[]; /** Last updated timestamp */ lastUpdated: number; } export declare const LawfulBasisTrackerLite: React__default.FC<LawfulBasisTrackerLiteProps>; export declare interface LawfulBasisTrackerLiteClassNames { root?: string; header?: string; title?: string; summary?: string; summaryCard?: string; table?: string; tableHeader?: string; tableRow?: string; statusBadge?: string; complianceScore?: string; gapAlert?: string; } export declare interface LawfulBasisTrackerLiteProps { activities: ProcessingActivity[]; title?: string; description?: string; className?: string; classNames?: LawfulBasisTrackerLiteClassNames; unstyled?: boolean; showSummary?: boolean; showComplianceGaps?: boolean; onActivityClick?: (activity: ProcessingActivity) => void; } /** * Lawful Basis types aligned with NDPA 2023 Part III (Sections 24-28) * Every processing activity must have a documented lawful basis */ /** * The six lawful bases for processing personal data per NDPA Section 25(1) */ export declare type LawfulBasisType = 'consent' | 'contract' | 'legal_obligation' | 'vital_interests' | 'public_interest' | 'legitimate_interests'; /** * Validation result for a processing activity */ export declare interface LawfulBasisValidationResult { isValid: boolean; errors: string[]; warnings: string[]; } /** * Represents a processing activity and its lawful basis */ export declare interface ProcessingActivity { /** Unique identifier */ id: string; /** Name of the processing activity */ name: string; /** Description of what processing is performed */ description: string; /** The lawful basis for this processing activity */ lawfulBasis: LawfulBasisType; /** Justification for why this lawful basis applies */ lawfulBasisJustification: string; /** Categories of personal data being processed */ dataCategories: string[]; /** Whether sensitive personal data is involved */ involvesSensitiveData: boolean; /** Condition for processing sensitive data (required if involvesSensitiveData is true) */ sensitiveDataCondition?: SensitiveDataCondition; /** Categories of data subjects */ dataSubjectCategories: string[]; /** Purposes of the processing */ purposes: string[]; /** Data retention period */ retentionPeriod: string; /** Justification for the retention period */ retentionJustification?: string; /** Recipients or categories of recipients */ recipients?: string[]; /** Whether data is transferred outside Nigeria */ crossBorderTransfer: boolean; /** Timestamp when the record was created */ createdAt: number; /** Timestamp when the record was last updated */ updatedAt: number; /** Next review date */ reviewDate?: number; /** Status of the processing activity */ status: 'active' | 'inactive' | 'under_review' | 'archived'; /** DPO approval details */ dpoApproval?: { approved: boolean; approvedBy: string; approvedAt: number; notes?: string; }; } /** * Additional conditions required for processing sensitive personal data * per NDPA Section 30 */ declare type SensitiveDataCondition = 'explicit_consent' | 'employment_law' | 'vital_interests_incapable' | 'nonprofit_legitimate' | 'publicly_available' | 'legal_claims' | 'substantial_public_interest' | 'health_purposes' | 'public_health' | 'archiving_research'; export { }