import type { ComplianceControl, ComplianceFramework, ImplementationStatus } from '../types.js';
/**
 * FedRAMP control responsibility types
 */
export declare const CONTROL_RESPONSIBILITIES: readonly ["csp-inherited", "csp-system-specific", "customer-inherited", "customer-system-specific", "shared"];
export type ControlResponsibility = (typeof CONTROL_RESPONSIBILITIES)[number];
/**
 * FedRAMP control origination
 */
export declare const CONTROL_ORIGINATIONS: readonly ["service-provider-corporate", "service-provider-system-specific", "service-provider-hybrid", "configured-by-customer", "provided-by-customer", "shared", "inherited"];
export type ControlOrigination = (typeof CONTROL_ORIGINATIONS)[number];
/**
 * FedRAMP impact levels
 */
export declare const IMPACT_LEVELS: readonly ["low", "moderate", "high"];
export type ImpactLevel = (typeof IMPACT_LEVELS)[number];
/**
 * Extended FedRAMP control with additional metadata
 */
export interface FedRAMPControl extends ComplianceControl {
    /** FedRAMP baseline inclusion */
    baseline: ImpactLevel[];
    /** Control responsibility */
    responsibility: ControlResponsibility;
    /** Control origination */
    origination: ControlOrigination;
    /** Implementation description for SSP */
    implementationDescription: string;
    /** Responsible roles */
    responsibleRoles: string[];
    /** Assessment procedure */
    assessmentProcedure: ControlAssessmentProcedure;
    /** Parameter values (for parameterized controls) */
    parameters?: ControlParameter[];
    /** Control enhancements implemented */
    enhancementsImplemented?: string[];
    /** Related CIS controls */
    cisControls?: string[];
    /** Related NIST CSF */
    nistCsf?: string[];
}
/**
 * Control assessment procedure
 */
export interface ControlAssessmentProcedure {
    /** Objective of the assessment */
    objective: string;
    /** Assessment methods */
    methods: ('examine' | 'interview' | 'test')[];
    /** Objects to examine */
    examineObjects?: string[];
    /** Roles to interview */
    interviewRoles?: string[];
    /** Tests to perform */
    testProcedures?: string[];
    /** Expected evidence */
    expectedEvidence: string[];
    /** Automated test available */
    automatedTestAvailable: boolean;
}
/**
 * Control parameter
 */
export interface ControlParameter {
    /** Parameter ID (e.g., AC-2(a)) */
    id: string;
    /** Parameter description */
    description: string;
    /** Organization-defined value */
    value: string;
    /** FedRAMP requirement/guidance */
    fedrampRequirement?: string;
}
/**
 * All FedRAMP Moderate baseline controls
 */
export declare const fedrampModerateControls: FedRAMPControl[];
/**
 * FedRAMP Moderate Baseline Framework
 */
export declare const fedrampModerateFramework: ComplianceFramework;
/**
 * Get controls by family
 */
export declare function getControlsByFamily(family: string): FedRAMPControl[];
/**
 * Get control by ID
 */
export declare function getControlById(id: string): FedRAMPControl | undefined;
/**
 * Get controls by responsibility
 */
export declare function getControlsByResponsibility(responsibility: ControlResponsibility): FedRAMPControl[];
/**
 * Get controls by implementation status
 */
export declare function getControlsByStatus(status: ImplementationStatus): FedRAMPControl[];
/**
 * Get controls with automated tests
 */
export declare function getAutomatedControls(): FedRAMPControl[];
/**
 * Calculate implementation percentage
 */
export declare function calculateImplementationPercentage(): number;
/**
 * Get control families summary
 */
export declare function getControlFamiliesSummary(): Array<{
    family: string;
    total: number;
    implemented: number;
    percentage: number;
}>;
export default fedrampModerateFramework;
//# sourceMappingURL=controls.d.ts.map