"""Type stubs for datalint_core."""

from typing import ClassVar

__version__: str

def create_cache(
    cache_path: str, dataset_type: DatasetType, dataset_task: DatasetTask
) -> str: ...

class DatasetTask:
    """Dataset task types for computer vision."""

    OBJECT_DETECTION: ClassVar[DatasetTask]
    INSTANCE_SEGMENTATION: ClassVar[DatasetTask]
    SEMANTIC_SEGMENTATION: ClassVar[DatasetTask]
    CLASSIFICATION: ClassVar[DatasetTask]
    OBB_DETECTION: ClassVar[DatasetTask]
    POSE_ESTIMATION: ClassVar[DatasetTask]

    def __new__(cls, value: str) -> DatasetTask: ...
    @property
    def display_name(self) -> str: ...
    @property
    def value(self) -> str: ...
    @staticmethod
    def as_list() -> list[str]: ...
    def __str__(self) -> str: ...
    def __repr__(self) -> str: ...
    def __eq__(self, other: object) -> bool: ...
    def __hash__(self) -> int: ...

class DatasetType:
    """Dataset format types."""

    COCO_CLASSIC: ClassVar[DatasetType]
    COCO: ClassVar[DatasetType]
    VOC: ClassVar[DatasetType]
    YOLO: ClassVar[DatasetType]
    CLS: ClassVar[DatasetType]
    CUSTOM: ClassVar[DatasetType]
    UNKNOWN: ClassVar[DatasetType]

    def __new__(cls, value: str) -> DatasetType: ...
    @property
    def display_name(self) -> str: ...
    @property
    def value(self) -> str: ...
    @staticmethod
    def as_list() -> list[str]: ...
    def __str__(self) -> str: ...
    def __repr__(self) -> str: ...
    def __eq__(self, other: object) -> bool: ...
    def __hash__(self) -> int: ...
