import { z } from 'zod';
import type { ComplianceReport, ControlAssessment, Finding, Evidence, ComplianceFramework } from './types.js';
/**
 * Options for generating compliance reports
 */
export interface ReportGenerationOptions {
    /** Report format */
    format: 'json' | 'pdf' | 'html';
    /** Include raw evidence in report */
    includeRawEvidence?: boolean;
    /** Include automated test results */
    includeTestResults?: boolean;
    /** Include recommendations */
    includeRecommendations?: boolean;
    /** Report preparer name */
    preparedBy?: string;
    /** Report reviewer name */
    reviewedBy?: string;
    /** Custom metadata */
    metadata?: Record<string, unknown>;
}
export declare const reportGenerationOptionsSchema: z.ZodObject<{
    format: z.ZodEnum<["json", "pdf", "html"]>;
    includeRawEvidence: z.ZodOptional<z.ZodBoolean>;
    includeTestResults: z.ZodOptional<z.ZodBoolean>;
    includeRecommendations: z.ZodOptional<z.ZodBoolean>;
    preparedBy: z.ZodOptional<z.ZodString>;
    reviewedBy: z.ZodOptional<z.ZodString>;
    metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
    metadata?: Record<string, unknown>;
    reviewedBy?: string;
    format?: "json" | "html" | "pdf";
    preparedBy?: string;
    includeRawEvidence?: boolean;
    includeTestResults?: boolean;
    includeRecommendations?: boolean;
}, {
    metadata?: Record<string, unknown>;
    reviewedBy?: string;
    format?: "json" | "html" | "pdf";
    preparedBy?: string;
    includeRawEvidence?: boolean;
    includeTestResults?: boolean;
    includeRecommendations?: boolean;
}>;
/**
 * Compliance report generator
 */
export declare class ReportGenerator {
    /**
     * Generate a compliance report for a framework
     */
    generateReport(framework: ComplianceFramework, assessments: ControlAssessment[], findings: Finding[], period: {
        start: Date;
        end: Date;
    }, options: ReportGenerationOptions): Promise<ComplianceReport>;
    /**
     * Calculate summary statistics from assessments
     */
    private calculateSummary;
    /**
     * Generate recommendations based on assessments and findings
     */
    private generateRecommendations;
    /**
     * Get severity weight for sorting
     */
    private severityWeight;
    /**
     * Format report as JSON string
     */
    formatAsJson(report: ComplianceReport): string;
    /**
     * Format report as HTML
     */
    formatAsHtml(report: ComplianceReport): string;
}
/**
 * Evidence collector for automated evidence gathering
 */
export declare class EvidenceCollector {
    private hashAlgorithm;
    constructor(hashAlgorithm?: 'sha256' | 'sha384' | 'sha512');
    /**
     * Collect evidence from audit logs
     */
    collectLogEvidence(title: string, description: string, source: string, content: string): Promise<Evidence>;
    /**
     * Collect evidence from configuration
     */
    collectConfigEvidence(title: string, description: string, source: string, content: string): Promise<Evidence>;
    /**
     * Collect evidence from API response
     */
    collectApiEvidence(title: string, description: string, source: string, response: unknown): Promise<Evidence>;
    /**
     * Collect evidence from test results
     */
    collectTestEvidence(title: string, description: string, source: string, testResult: {
        passed: boolean;
        details: string;
    }): Promise<Evidence>;
    /**
     * Hash content for integrity verification
     */
    private hashContent;
    /**
     * Verify evidence integrity
     */
    verifyEvidenceIntegrity(evidence: Evidence): boolean;
}
/**
 * Finding generator for identifying compliance gaps
 */
export declare class FindingGenerator {
    /**
     * Generate findings from control assessments
     */
    generateFindings(assessments: ControlAssessment[], framework: ComplianceFramework): Finding[];
    /**
     * Create a finding
     */
    private createFinding;
    /**
     * Determine severity based on gaps
     */
    private determineSeverityFromGaps;
}
export declare const reportGenerator: ReportGenerator;
export declare const evidenceCollector: EvidenceCollector;
export declare const findingGenerator: FindingGenerator;
//# sourceMappingURL=reports.d.ts.map