from _typeshed import Incomplete as Incomplete
from pathlib import Path
from typing import Any, Optional, Union

class MetadataValidator:
    schema: Incomplete
    def __init__(self) -> None: ...
    def validate(self, *, path: Optional[Union[str, Path]] = ..., json_obj: Optional[dict[str, Any]] = ...) -> dict[str, Any]: ...

def metadata_validate(path: Union[str, Path]): ...

class InvoiceValidator:
    pre_basic_info_schema: Incomplete
    schema_path: Incomplete
    schema: Incomplete
    def __init__(self, schema_path: Union[str, Path]) -> None: ...
    def validate(self, *, path: Optional[Union[str, Path]] = ..., obj: Optional[dict[str, Any]] = ...) -> dict[str, Any]: ...

def invoice_validate(path: Union[str, Path], schema: Union[str, Path]): ...
