@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
TypeScript
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 { }