/**
 * EU NIS2 Directive Compliance Framework (Directive 2022/2555)
 *
 * Implements the European Union Network and Information Security Directive 2
 * establishing a high common level of cybersecurity across the Union,
 * replacing the original NIS Directive (2016/1148).
 *
 * Articles covered:
 * - Art 21: Cybersecurity Risk-Management Measures
 * - Art 23: Reporting Obligations and Timelines
 * - Art 24: Use of European Cybersecurity Certification Schemes
 * - Art 29: Cybersecurity Information-Sharing Arrangements
 * - Art 32: Supervisory and Enforcement — Essential Entities
 * - Art 33: Supervisory and Enforcement — Important Entities
 *
 * @packageDocumentation
 */
import type { ComplianceFramework, ComplianceControl, ImplementationStatus } from '../types.js';
/**
 * NIS2 entity types as defined in Annex I (essential) and Annex II (important).
 *
 * - `essential`: Entities in sectors of high criticality (Annex I) subject to
 *   comprehensive supervisory regime under Art 32.
 * - `important`: Entities in other critical sectors (Annex II) subject to
 *   lighter-touch supervisory regime under Art 33.
 */
export declare const NIS2_ENTITY_TYPES: readonly ["essential", "important"];
export type Nis2EntityType = (typeof NIS2_ENTITY_TYPES)[number];
/**
 * Sectors covered by the NIS2 Directive as defined in Annexes I and II.
 *
 * Annex I (essential entity sectors): energy, transport, banking, health,
 * water, digital_infrastructure, ICT_service_management, public_admin, space.
 *
 * Annex II (important entity sectors): postal, waste, chemicals, food,
 * manufacturing, digital_providers, research.
 */
export declare const NIS2_SECTORS: readonly ["energy", "transport", "banking", "health", "water", "digital_infrastructure", "ICT_service_management", "public_admin", "space", "postal", "waste", "chemicals", "food", "manufacturing", "digital_providers", "research"];
export type Nis2Sector = (typeof NIS2_SECTORS)[number];
/**
 * Complete NIS2 Directive compliance framework
 */
export declare const nis2Framework: ComplianceFramework;
/**
 * Retrieve all controls belonging to a specific NIS2 article.
 *
 * Matches controls whose `family` field starts with `"Art {article} -"`.
 *
 * @param article - The article number (e.g., 21, 23, 24, 29, 32, 33)
 * @returns Array of controls for the specified article
 */
export declare function getControlsByArticle(article: number): ComplianceControl[];
/**
 * Find a single control by its unique identifier.
 *
 * @param id - The control ID (e.g., 'NIS2-21.1', 'NIS2-23.3')
 * @returns The matching control, or undefined if not found
 */
export declare function getControlById(id: string): ComplianceControl | undefined;
/**
 * Retrieve all controls with a specific implementation status.
 *
 * @param status - The implementation status to filter by
 * @returns Array of controls matching the specified status
 */
export declare function getControlsByStatus(status: ImplementationStatus): ComplianceControl[];
/**
 * Get a sorted list of all unique article families in the framework.
 *
 * @returns Sorted array of family strings (e.g., 'Art 21 - Cybersecurity Risk-Management Measures', ...)
 */
export declare function getArticleFamilies(): string[];
/**
 * Calculate compliance percentage by article, based on the ratio of
 * fully implemented controls to total controls.
 *
 * @returns Map of article number to compliance percentage (0-100)
 */
export declare function getComplianceByArticle(): Map<number, number>;
/**
 * Get the sectors applicable to a specific entity type.
 *
 * @param entityType - 'essential' or 'important'
 * @returns Array of sector identifiers for the given entity type
 */
export declare function getSectorsForEntityType(entityType: Nis2EntityType): Nis2Sector[];
export default nis2Framework;
//# sourceMappingURL=nis2.d.ts.map