"""Type stubs for tnfr.extensions"""

from typing import Dict, List, Optional, Type
from .base import TNFRExtension, PatternDefinition, CookbookRecipe

class ExtensionRegistry:
    def __init__(self) -> None: ...
    def register_extension(self, extension: TNFRExtension) -> None: ...
    def unregister_extension(self, domain_name: str) -> None: ...
    def get_extension(self, domain_name: str) -> Optional[TNFRExtension]: ...
    def list_extensions(self) -> List[str]: ...
    def get_domain_patterns(self, domain_name: str) -> Dict[str, PatternDefinition]: ...
    def get_domain_health_analyzers(self, domain_name: str) -> Dict[str, Type]: ...
    def get_domain_recipes(self, domain_name: str) -> Dict[str, CookbookRecipe]: ...
    def get_all_patterns(self) -> Dict[str, Dict[str, PatternDefinition]]: ...
    def clear(self) -> None: ...

registry: ExtensionRegistry
