from hushspec.evaluate import (
    Decision,
    EvaluationAction,
    EvaluationResult,
    OriginContext,
    PostureContext,
    PostureResult,
    activate_panic,
    check_panic_sentinel,
    deactivate_panic,
    evaluate,
    is_panic_active,
    panic_policy,
)
from hushspec.receipt import (
    ActionSummary,
    AuditConfig,
    DecisionReceipt,
    PolicySummary,
    RuleEvaluation,
    compute_policy_hash,
    evaluate_audited,
)
from hushspec.extensions import (
    BridgePolicy,
    BridgeTarget,
    DetectionExtension,
    DetectionLevel,
    Extensions,
    JailbreakDetection,
    OriginBudgets,
    OriginDataPolicy,
    OriginDefaultBehavior,
    OriginMatch,
    OriginProfile,
    OriginsExtension,
    PostureExtension,
    PostureState,
    PostureTransition,
    PromptInjectionDetection,
    ThreatIntelDetection,
    TransitionTrigger,
)
from hushspec.merge import merge
from hushspec.middleware import HushGuard, HushSpecDenied
from hushspec.observer import (
    ConsoleObserver,
    EvaluationObserver,
    JsonLineObserver,
    MetricsCollector,
    ObservableEvaluator,
)
from hushspec.sinks import (
    CallbackSink,
    FileReceiptSink,
    FilteredSink,
    MultiSink,
    NullSink,
    ReceiptSink,
    StderrReceiptSink,
)
from hushspec.detection import (
    DetectionCategory,
    DetectionConfig,
    DetectionResult,
    DetectorRegistry,
    EvaluationWithDetection,
    MatchedPattern,
    RegexExfiltrationDetector,
    RegexInjectionDetector,
    evaluate_with_detection,
)
from hushspec.conditions import (
    Condition,
    RuntimeContext,
    TimeWindowCondition,
    evaluate_condition,
    evaluate_with_context,
)
from hushspec.parse import parse, parse_or_raise
from hushspec.resolve import LoadedSpec, resolve, resolve_file, resolve_or_raise
from hushspec.rules import (
    ComputerUseMode,
    ComputerUseRule,
    DefaultAction,
    EgressRule,
    ForbiddenPathsRule,
    InputInjectionRule,
    PatchIntegrityRule,
    PathAllowlistRule,
    RemoteDesktopChannelsRule,
    Rules,
    SecretPattern,
    SecretPatternsRule,
    Severity,
    ShellCommandsRule,
    ToolAccessRule,
)
from hushspec.schema import Classification, GovernanceMetadata, HushSpec, LifecycleState, MergeStrategy
from hushspec.validate import ValidationError, ValidationResult, is_safe_regex, validate
from hushspec.version import HUSHSPEC_VERSION, SUPPORTED_VERSIONS, is_supported

__version__ = HUSHSPEC_VERSION

__all__ = [
    "HushSpec",
    "MergeStrategy",
    "GovernanceMetadata",
    "Classification",
    "LifecycleState",
    "Rules",
    "ForbiddenPathsRule",
    "PathAllowlistRule",
    "EgressRule",
    "SecretPatternsRule",
    "SecretPattern",
    "PatchIntegrityRule",
    "ShellCommandsRule",
    "ToolAccessRule",
    "ComputerUseRule",
    "ComputerUseMode",
    "RemoteDesktopChannelsRule",
    "InputInjectionRule",
    "Severity",
    "DefaultAction",
    "Extensions",
    "PostureExtension",
    "PostureState",
    "PostureTransition",
    "TransitionTrigger",
    "OriginsExtension",
    "OriginDefaultBehavior",
    "OriginProfile",
    "OriginMatch",
    "OriginDataPolicy",
    "OriginBudgets",
    "BridgePolicy",
    "BridgeTarget",
    "DetectionExtension",
    "DetectionLevel",
    "PromptInjectionDetection",
    "JailbreakDetection",
    "ThreatIntelDetection",
    "parse",
    "parse_or_raise",
    "validate",
    "ValidationResult",
    "ValidationError",
    "is_safe_regex",
    "merge",
    "resolve",
    "resolve_file",
    "resolve_or_raise",
    "LoadedSpec",
    "Condition",
    "TimeWindowCondition",
    "RuntimeContext",
    "evaluate_condition",
    "evaluate_with_context",
    "evaluate",
    "Decision",
    "EvaluationAction",
    "EvaluationResult",
    "OriginContext",
    "PostureContext",
    "PostureResult",
    "activate_panic",
    "deactivate_panic",
    "is_panic_active",
    "panic_policy",
    "check_panic_sentinel",
    "evaluate_audited",
    "compute_policy_hash",
    "DecisionReceipt",
    "ActionSummary",
    "RuleEvaluation",
    "PolicySummary",
    "AuditConfig",
    "ReceiptSink",
    "FileReceiptSink",
    "StderrReceiptSink",
    "FilteredSink",
    "MultiSink",
    "CallbackSink",
    "NullSink",
    "HushGuard",
    "HushSpecDenied",
    "EvaluationObserver",
    "ObservableEvaluator",
    "JsonLineObserver",
    "ConsoleObserver",
    "MetricsCollector",
    "DetectionCategory",
    "DetectionConfig",
    "DetectionResult",
    "DetectorRegistry",
    "EvaluationWithDetection",
    "MatchedPattern",
    "RegexExfiltrationDetector",
    "RegexInjectionDetector",
    "evaluate_with_detection",
    "HUSHSPEC_VERSION",
    "SUPPORTED_VERSIONS",
    "is_supported",
]
