# This file is part of the faebryk project
# SPDX-License-Identifier: MIT

# This file is auto-generated by zig.
# Do not edit this file directly; edit the corresponding
# Zig file instead.

from enum import Enum, IntEnum  # noqa: F401
from typing import Any  # noqa: F401

# Dirty hack to not error in ruff check
type Allocator = Any

class FpLibEntry:
    name: str
    type: str
    uri: str
    options: str
    descr: str

    def __init__(
        self, *, name: str, type: str, uri: str, options: str, descr: str
    ) -> None: ...
    def __repr__(self) -> str: ...
    @staticmethod
    def __field_names__() -> list[str]: ...
    def __zig_address__(self) -> int: ...

class FpLibTable:
    version: int | None
    libs: list[FpLibEntry]

    def __init__(self, *, version: int | None, libs: list[FpLibEntry]) -> None: ...
    def __repr__(self) -> str: ...
    @staticmethod
    def __field_names__() -> list[str]: ...
    def __zig_address__(self) -> int: ...

class FpLibTableFile:
    fp_lib_table: FpLibTable

    def __init__(self, *, fp_lib_table: FpLibTable) -> None: ...
    def __repr__(self) -> str: ...
    @staticmethod
    def __field_names__() -> list[str]: ...
    def __zig_address__(self) -> int: ...
    @staticmethod
    def loads(*, arg_0: Allocator, arg_1: Any) -> FpLibTableFile: ...
    @staticmethod
    def dumps(*, arg_0: FpLibTableFile, arg_1: Allocator, arg_2: Any) -> None: ...
    def free(self, *, arg_0: Allocator) -> None: ...

# Module-level functions
def loads(data: str) -> FpLibTableFile: ...
def dumps(obj: FpLibTableFile) -> str: ...
