"""
File Integrity System - Reusable file integrity verification with audit trail.

Provides:
- Smart verification (only verify when files change)
- Embedded statistics (low overhead)
- Sparse failure logging (audit trail)
- Extensible verifier system (support multiple file types)

Example usage:
    from local_deep_research.security.file_integrity import (
        FileIntegrityManager,
        FAISSIndexVerifier
    )

    # Initialize manager
    manager = FileIntegrityManager(username, password)
    manager.register_verifier(FAISSIndexVerifier())

    # Record file
    manager.record_file(path, related_type='rag_index', related_id=123)

    # Verify file
    passed, reason = manager.verify_file(path)
    if not passed:
        print(f"Verification failed: {reason}")
"""

from ...database.models.file_integrity import (
    FileIntegrityRecord,
    FileVerificationFailure,
)
from .base_verifier import BaseFileVerifier
from .integrity_manager import FileIntegrityManager
from .verifiers import FAISSIndexVerifier

__all__ = [
    # Models
    "FileIntegrityRecord",
    "FileVerificationFailure",
    # Base classes
    "BaseFileVerifier",
    # Main service
    "FileIntegrityManager",
    # Verifiers
    "FAISSIndexVerifier",
]
