# 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

from faebryk.core.zig.gen.sexp.schematic import Symbol

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

class SymbolLib:
    version: int
    generator: str
    symbols: list[Symbol]

    def __init__(
        self, *, version: int, generator: str, symbols: list[Symbol]
    ) -> None: ...
    def __repr__(self) -> str: ...
    @staticmethod
    def __field_names__() -> list[str]: ...
    def __zig_address__(self) -> int: ...

class SymbolFile:
    kicad_sym: SymbolLib

    def __init__(self, *, kicad_sym: SymbolLib) -> 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) -> SymbolFile: ...
    @staticmethod
    def dumps(*, arg_0: SymbolFile, arg_1: Allocator, arg_2: Any) -> None: ...
    def free(self, *, arg_0: Allocator) -> None: ...

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