# Released under the MIT License. See LICENSE for details.
#
# AUTO-GENERATED by bacommon.langstr + bacommon.assetref codegen;
# do not edit by hand.
"""Type-safe asset accessors for a-0.bamvpstrings2.260626b.

Client-side authoring wrapper for the bamvpstrings2 test package, used to
build doc-ui-v2 documents locally (see ``bauiv1lib.docuitest``). It exposes
language strings (``strings``) plus texture/mesh references (``textures`` /
``meshes``) from one package. The reference accessors yield bauiv1 reference
leaves -- usable as-is in doc-ui-v2 documents and loadable into live engine
assets via their ``get()`` method. This is a hand-vendored preview of the
unified bauiv1 wrapper the server-side generator will eventually emit.
"""

from typing import TYPE_CHECKING

from bacommon.langstr import LangStrDir

from bauiv1._assetref import AssetRefDir

__asset_package__ = 'a-0.bamvpstrings2.260626b'

if TYPE_CHECKING:
    from bacommon.langstr import Lstr, WrapperTree

    from bauiv1._assetref import TextureRef, MeshRef

    class StringsGroup:
        """Type-safe language-string accessors (strings)."""

        gadget: Lstr

        def salute(self, *, player: str | Lstr) -> Lstr: ...

    class StringsLibrary:
        """Type-safe language-string accessors (library root)."""

        strings: StringsGroup

    strings: StringsLibrary

    class MeshesGroup:
        """Type-safe asset references (meshes)."""

        v2diamond: MeshRef

    meshes: MeshesGroup

    class TexturesGroup:
        """Type-safe asset references (textures)."""

        v2tex: TextureRef

    textures: TexturesGroup

_STRINGS_TREE: 'WrapperTree' = {
    'strings': {'gadget': (), 'salute': ('player',)}
}
_ASSETS_TREE = {'meshes': {'v2diamond': 'm'}, 'textures': {'v2tex': 't'}}

if not TYPE_CHECKING:
    strings = LangStrDir(__asset_package__, _STRINGS_TREE)
    meshes = AssetRefDir(__asset_package__, _ASSETS_TREE['meshes'], 'meshes')
    textures = AssetRefDir(
        __asset_package__, _ASSETS_TREE['textures'], 'textures'
    )
