import { SecurityLevel } from "../types/cia"; import { CIAComponentType, CIADataProvider, ImplementationEffort, TechnicalImplementationDetails } from "../types/cia-services"; import { ITechnicalImplementationService } from "../types/services"; import { BaseService } from "./BaseService"; /** * Technical implementation details for different security components */ export interface ComponentTechnicalDetails { description: string; implementationSteps: string[]; effort: { development: string; maintenance: string; expertise: string; }; } /** * Service for technical implementation details and guidance * * ## Implementation Perspective * * This service provides practical implementation guidance for security controls, * including effort estimation, technical requirements, and step-by-step * implementation guides. It helps technical teams understand how to operationalize * security requirements and implement controls effectively. 🔧 * * @implements {ITechnicalImplementationService} */ export declare class TechnicalImplementationService extends BaseService implements ITechnicalImplementationService { /** * Service name for identification */ readonly name: string; /** * Create a new TechnicalImplementationService instance * * @param dataProvider - Data provider for CIA options and implementation data * @throws {ServiceError} If dataProvider is not provided */ constructor(dataProvider: CIADataProvider); /** * Get technical implementation details for a component and security level * * Provides detailed technical guidance including implementation steps, * effort estimates, required expertise, and technology recommendations * for implementing security controls. * * @param component - CIA component type (confidentiality, integrity, availability) * @param level - Security level * @returns Technical implementation details including steps, effort estimates, and requirements * @throws {ServiceError} If component or level is invalid * * @example * ```typescript * const details = service.getTechnicalImplementation('confidentiality', 'High'); * console.log(details.description); * console.log(`Development effort: ${details.effort.development}`); * details.implementationSteps.forEach((step, i) => console.log(`${i+1}. ${step}`)); * ``` */ getTechnicalImplementation(component: CIAComponentType, level: SecurityLevel): TechnicalImplementationDetails; /** * Get component implementation details */ getComponentImplementationDetails(_component: CIAComponentType, level: SecurityLevel): TechnicalImplementationDetails; /** * Get technical description for a component and security level * * Returns a detailed technical description of what needs to be implemented * for the specified security control. * * @param component - CIA component type * @param level - Security level * @returns Technical description or "No technical details available" if not found * @throws {ServiceError} If component or level is invalid * * @example * ```typescript * const desc = service.getTechnicalDescription('integrity', 'High'); * console.log(desc); // "Implement cryptographic hashing and digital signatures..." * ``` */ getTechnicalDescription(component: CIAComponentType, level: SecurityLevel): string; /** * Get recommendations for a component and security level * * Returns specific actionable recommendations for implementing * security controls at the given level. * * @param component - CIA component type * @param level - Security level * @returns Array of recommendation strings (may be empty if none available) * @throws {ServiceError} If component or level is invalid * * @example * ```typescript * const recs = service.getRecommendations('availability', 'High'); * recs.forEach(rec => console.log(`- ${rec}`)); * ``` */ getRecommendations(component: CIAComponentType, level: SecurityLevel): string[]; /** * Get implementation time estimate based on security level * * @param level - Security level * @returns Implementation time estimate */ /** * Get implementation time estimate for a security level * * Provides an estimated timeframe for implementing security controls * at the specified security level. * * @param level - Security level * @returns Time estimate string (e.g., "3-6 months") * @throws {ServiceError} If level is invalid * * @example * ```typescript * const time = service.getImplementationTime('High'); * console.log(`Expected implementation time: ${time}`); * ``` */ getImplementationTime(level: SecurityLevel): string; /** * Get implementation considerations based on security levels * * @param level - Security level for implementation * @returns Implementation considerations text */ getImplementationConsiderations(level: SecurityLevel): string; /** * Get implementation effort for a component's security level * @param component - The CIA component * @param level - The security level * @returns Implementation effort details or default effort */ getImplementationEffort(component: CIAComponentType, level: SecurityLevel): ImplementationEffort; /** * Get implementation steps for a component's security level * @param component - The CIA component * @param level - The security level * @returns Array of implementation steps */ getImplementationSteps(component: CIAComponentType, level: SecurityLevel): string[]; /** * Create default implementation details based on component and level * * @param _component - CIA component type * @param level - Security level * @returns Default implementation details */ private createDefaultImplementationDetails; /** * Get default development effort for a security level * * @param level - Security level * @returns Development effort */ private getDefaultDevelopmentEffort; /** * Get default maintenance effort for a security level * * @param level - Security level * @returns Maintenance effort */ private getDefaultMaintenanceEffort; /** * Get default expertise level for a security level * * @param level - Security level * @returns Required expertise level */ private getDefaultExpertiseLevel; } /** * Create a TechnicalImplementationService instance * * @param dataProvider - Optional data provider for the service * @returns A new TechnicalImplementationService instance */ export declare function createTechnicalImplementationService(dataProvider?: CIADataProvider): TechnicalImplementationService; //# sourceMappingURL=technicalImplementationService.d.ts.map