from typing import Callable, TypeVar

from numpy.typing import ArrayLike

_CallableT = TypeVar("_CallableT", bound=Callable)

def arg_to_array(func: Callable) -> Callable: ...
def as_vec4(obj: ArrayLike, default: ArrayLike = ...) -> ArrayLike: ...
def arg_to_vec4(func: _CallableT) -> _CallableT: ...

class TransformCache:
    def __init__(self, max_age=1): ...
    def get(self, path): ...
    def _create(self, path): ...
    def roll(self): ...
