from .mili import (
    MILI,
    register_custom_component,
    pack_component,
    get_font_cache,
    clear_font_cache,
)
from .data import ElementData, Interaction, ImageCache, ImageLayerCache
from .style import RESIZE, X, CENTER, PADLESS, FLOATING, FILL
from .utility import (
    Selectable,
    Dragger,
    Scroll,
    Scrollbar,
    Slider,
    GenericApp,
    InteractionSound,
    InteractionCursor,
    CustomWindowBorders,
    percentage,
    indent,
    fit_image,
)

from . import error
from . import style
from . import typing
from . import data
from . import animation
from . import icon

from collections import namedtuple

VERSION = namedtuple("VersionInfo", "major minor micro")(1, 0, 2)
VERSION_STR = f"{VERSION.major}.{VERSION.minor}.{VERSION.micro}"
del namedtuple

__all__ = (
    "MILI",
    "ElementData",
    "Interaction",
    "ImageCache",
    "ImageLayerCache",
    "Selectable",
    "Dragger",
    "Scroll",
    "Scrollbar",
    "Slider",
    "GenericApp",
    "InteractionSound",
    "InteractionCursor",
    "CustomWindowBorders",
    "percentage",
    "indent",
    "fit_image",
    "register_custom_component",
    "pack_component",
    "get_font_cache",
    "clear_font_cache",
    "RESIZE",
    "X",
    "CENTER",
    "PADLESS",
    "FLOATING",
    "FILL",
    "error",
    "style",
    "typing",
    "data",
    "animation",
    "icon",
    "VERSION",
    "VERSION_STR",
)
