"""UKO vocabulary extensions for the ACMS.

Provides Layer 2 paradigm vocabulary specializations (Object-Oriented,
Functional, Procedural) with DetailLevelMap inheritance, and Layer 3
technology-specific vocabulary extensions that further specialize
Layer 2 paradigms with language-specific semantic refinements.

Layer 2 modules:
- ``detail_level_maps`` -- CODE/OO/FUNC/PROC DetailLevelMaps, builder
- ``vocabularies``      -- ParadigmVocabulary, VocabularyClass/Property
- ``vocabulary_registry`` -- VocabularyRegistry, DuplicateVocabularyError

Layer 3 modules:
- ``layer3_py``   -- Python (``uko-py:``) vocabulary and DetailLevelMap
- ``layer3_ts``   -- TypeScript (``uko-ts:``) vocabulary and DetailLevelMap
- ``layer3_rs``   -- Rust (``uko-rs:``) vocabulary and DetailLevelMap
- ``layer3_java`` -- Java (``uko-java:``) vocabulary and DetailLevelMap

Shared types:
- ``vocabulary`` -- Base classes for UKO vocabulary definitions

Namespace prefixes (per specification.md ~line 41900):

| Prefix        | IRI                                             | Layer |
|---------------|-------------------------------------------------|-------|
| ``uko-oo:``   | ``https://cleveragents.ai/ontology/uko/oo#``    | 2     |
| ``uko-func:`` | ``https://cleveragents.ai/ontology/uko/func#``  | 2     |
| ``uko-proc:`` | ``https://cleveragents.ai/ontology/uko/proc#``  | 2     |
| ``uko-py:``   | ``https://cleveragents.ai/ontology/uko/py#``    | 3     |
| ``uko-ts:``   | ``https://cleveragents.ai/ontology/uko/ts#``    | 3     |
| ``uko-rs:``   | ``https://cleveragents.ai/ontology/uko/rs#``    | 3     |
| ``uko-java:`` | ``https://cleveragents.ai/ontology/uko/java#``  | 3     |

Based on ``docs/specification.md`` ~lines 42333-42513.
"""

from __future__ import annotations

from cleveragents.acms.uko.detail_level_maps import (
    CODE_DETAIL_LEVEL_MAP,
    FUNC_DETAIL_LEVEL_MAP,
    OO_DETAIL_LEVEL_MAP,
    PROC_DETAIL_LEVEL_MAP,
    DetailLevelMapBuilder,
    build_effective_map,
)
from cleveragents.acms.uko.layer3_java import (
    JAVA_DETAIL_LEVELS,
    JAVA_VOCABULARY,
    JavaAnnotation,
    JavaCheckedException,
    JavaClass,
    JavaInterface,
    JavaMethod,
)
from cleveragents.acms.uko.layer3_py import (
    PYTHON_DETAIL_LEVELS,
    PYTHON_VOCABULARY,
    PythonClass,
    PythonDecorator,
    PythonFunction,
    PythonModule,
    PythonTypeStub,
)
from cleveragents.acms.uko.layer3_rs import (
    RUST_DETAIL_LEVELS,
    RUST_VOCABULARY,
    RustDeriveAttribute,
    RustFunction,
    RustImpl,
    RustStruct,
    RustTrait,
)
from cleveragents.acms.uko.layer3_ts import (
    TYPESCRIPT_DETAIL_LEVELS,
    TYPESCRIPT_VOCABULARY,
    TypeScriptClass,
    TypeScriptFunction,
    TypeScriptInterface,
    TypeScriptModule,
)
from cleveragents.acms.uko.vocabularies import (
    ParadigmVocabulary,
    VocabularyClass,
    VocabularyProperty,
    get_func_vocabulary,
    get_oo_vocabulary,
    get_proc_vocabulary,
)
from cleveragents.acms.uko.vocabulary import (
    Layer2Dependency,
    ProvenanceInfo,
    UKOClass,
    UKOProperty,
    UKOVocabulary,
    build_detail_level_map,
    resolve_detail_level,
)
from cleveragents.acms.uko.vocabulary_registry import (
    DuplicateVocabularyError,
    VocabularyRegistry,
)

__all__: list[str] = [
    "CODE_DETAIL_LEVEL_MAP",
    "FUNC_DETAIL_LEVEL_MAP",
    "JAVA_DETAIL_LEVELS",
    "JAVA_VOCABULARY",
    "OO_DETAIL_LEVEL_MAP",
    "PROC_DETAIL_LEVEL_MAP",
    "PYTHON_DETAIL_LEVELS",
    "PYTHON_VOCABULARY",
    "RUST_DETAIL_LEVELS",
    "RUST_VOCABULARY",
    "TYPESCRIPT_DETAIL_LEVELS",
    "TYPESCRIPT_VOCABULARY",
    "DetailLevelMapBuilder",
    "DuplicateVocabularyError",
    "JavaAnnotation",
    "JavaCheckedException",
    "JavaClass",
    "JavaInterface",
    "JavaMethod",
    "Layer2Dependency",
    "ParadigmVocabulary",
    "ProvenanceInfo",
    "PythonClass",
    "PythonDecorator",
    "PythonFunction",
    "PythonModule",
    "PythonTypeStub",
    "RustDeriveAttribute",
    "RustFunction",
    "RustImpl",
    "RustStruct",
    "RustTrait",
    "TypeScriptClass",
    "TypeScriptFunction",
    "TypeScriptInterface",
    "TypeScriptModule",
    "UKOClass",
    "UKOProperty",
    "UKOVocabulary",
    "VocabularyClass",
    "VocabularyProperty",
    "VocabularyRegistry",
    "build_detail_level_map",
    "build_effective_map",
    "get_func_vocabulary",
    "get_oo_vocabulary",
    "get_proc_vocabulary",
    "resolve_detail_level",
]
