# This file is automatically generated by pyo3_stub_gen
# ruff: noqa: E501, F401

import builtins
import typing

__version__: builtins.str
@typing.final
class A2lFile:
    @property
    def modules(self) -> list[Module]: ...

@typing.final
class Annotation:
    @property
    def label(self) -> typing.Optional[builtins.str]: ...
    @property
    def origin(self) -> typing.Optional[builtins.str]: ...
    @property
    def text_lines(self) -> typing.Optional[builtins.list[builtins.str]]: ...

@typing.final
class BitOperation:
    @property
    def left_shift(self) -> typing.Optional[builtins.int]: ...
    @property
    def right_shift(self) -> typing.Optional[builtins.int]: ...
    @property
    def sign_extend(self) -> builtins.bool: ...

@typing.final
class Coeffs:
    @property
    def a(self) -> builtins.float: ...
    @property
    def b(self) -> builtins.float: ...
    @property
    def c(self) -> builtins.float: ...
    @property
    def d(self) -> builtins.float: ...
    @property
    def e(self) -> builtins.float: ...
    @property
    def f(self) -> builtins.float: ...

@typing.final
class CoeffsLinear:
    @property
    def a(self) -> builtins.float: ...
    @property
    def b(self) -> builtins.float: ...

@typing.final
class CompuMethod:
    @property
    def name(self) -> builtins.str: ...
    @property
    def long_identifier(self) -> builtins.str: ...
    @property
    def conversion_type(self) -> builtins.str: ...
    @property
    def format(self) -> builtins.str: ...
    @property
    def unit(self) -> builtins.str: ...
    @property
    def coeffs(self) -> Coeffs | None: ...
    @property
    def coeffs_linear(self) -> CoeffsLinear | None: ...
    @property
    def compu_tab_ref(self) -> typing.Optional[builtins.str]: ...
    @property
    def formula(self) -> Formula | None: ...
    @property
    def ref_unit(self) -> typing.Optional[builtins.str]: ...
    @property
    def status_string_ref(self) -> typing.Optional[builtins.str]: ...
    @property
    def referenced_unit(self) -> Unit | None: ...
    @property
    def referenced_table(self) -> CompuTab | CompuVtab | CompuVtabRange | None: ...

@typing.final
class CompuTab:
    @property
    def name(self) -> builtins.str: ...
    @property
    def long_identifier(self) -> builtins.str: ...
    @property
    def conversion_type(self) -> builtins.str: ...
    @property
    def number_value_pairs(self) -> builtins.int: ...
    @property
    def entries(self) -> list[TabEntry]: ...
    @property
    def default_value(self) -> typing.Optional[builtins.str]: ...
    @property
    def default_value_numeric(self) -> typing.Optional[builtins.float]: ...

@typing.final
class CompuVtab:
    @property
    def name(self) -> builtins.str: ...
    @property
    def long_identifier(self) -> builtins.str: ...
    @property
    def conversion_type(self) -> builtins.str: ...
    @property
    def number_value_pairs(self) -> builtins.int: ...
    @property
    def entries(self) -> list[ValuePair]: ...
    @property
    def default_value(self) -> typing.Optional[builtins.str]: ...

@typing.final
class CompuVtabRange:
    @property
    def name(self) -> builtins.str: ...
    @property
    def long_identifier(self) -> builtins.str: ...
    @property
    def number_value_triples(self) -> builtins.int: ...
    @property
    def entries(self) -> list[ValueTriple]: ...
    @property
    def default_value(self) -> typing.Optional[builtins.str]: ...

@typing.final
class Formula:
    @property
    def fx(self) -> builtins.str: ...
    @property
    def formula_inv(self) -> typing.Optional[builtins.str]: ...

@typing.final
class GenericIfData:
    @property
    def kind(self) -> builtins.str: ...
    @property
    def line(self) -> typing.Optional[builtins.int]: ...
    @property
    def incfile(self) -> typing.Optional[builtins.str]: ...
    @property
    def is_hex(self) -> typing.Optional[builtins.bool]: ...
    @property
    def value(self) -> typing.Any | None: ...
    @property
    def items(self) -> list[GenericIfData] | None: ...
    @property
    def tagged_items(self) -> dict[str, list[GenericIfDataTaggedItem]] | None: ...

@typing.final
class GenericIfDataTaggedItem:
    @property
    def tag(self) -> builtins.str: ...
    @property
    def data(self) -> GenericIfData: ...
    @property
    def is_block(self) -> builtins.bool: ...
    @property
    def line(self) -> builtins.int: ...
    @property
    def incfile(self) -> typing.Optional[builtins.str]: ...

@typing.final
class IfData:
    @property
    def valid(self) -> builtins.bool: ...
    @property
    def items(self) -> GenericIfData | None: ...

@typing.final
class MaxRefresh:
    @property
    def scaling_unit(self) -> builtins.int: ...
    @property
    def rate(self) -> builtins.int: ...

@typing.final
class Measurement:
    @property
    def name(self) -> builtins.str: ...
    @property
    def long_identifier(self) -> builtins.str: ...
    @property
    def datatype(self) -> builtins.str: ...
    @property
    def conversion(self) -> builtins.str: ...
    @property
    def compu_method(self) -> CompuMethod | None: ...
    @property
    def resolution(self) -> builtins.int: ...
    @property
    def accuracy(self) -> builtins.float: ...
    @property
    def lower_limit(self) -> builtins.float: ...
    @property
    def upper_limit(self) -> builtins.float: ...
    @property
    def address_type(self) -> typing.Optional[builtins.str]: ...
    @property
    def annotation(self) -> list[Annotation]: ...
    @property
    def array_size(self) -> typing.Optional[builtins.int]: ...
    @property
    def bit_mask(self) -> typing.Optional[builtins.int]: ...
    @property
    def bit_operation(self) -> BitOperation | None: ...
    @property
    def byte_order(self) -> typing.Optional[builtins.str]: ...
    @property
    def discrete(self) -> builtins.bool: ...
    @property
    def display_identifier(self) -> typing.Optional[builtins.str]: ...
    @property
    def ecu_address(self) -> typing.Optional[builtins.int]: ...
    @property
    def ecu_address_extension(self) -> typing.Optional[builtins.int]: ...
    @property
    def error_mask(self) -> typing.Optional[builtins.int]: ...
    @property
    def format(self) -> typing.Optional[builtins.str]: ...
    @property
    def function_list(self) -> typing.Optional[builtins.list[builtins.str]]: ...
    @property
    def if_data(self) -> list[IfData]: ...
    @property
    def layout(self) -> typing.Optional[builtins.str]: ...
    @property
    def matrix_dim(self) -> typing.Optional[builtins.list[builtins.int]]: ...
    @property
    def max_refresh(self) -> MaxRefresh | None: ...
    @property
    def model_link(self) -> typing.Optional[builtins.str]: ...
    @property
    def phys_unit(self) -> typing.Optional[builtins.str]: ...
    @property
    def read_write(self) -> builtins.bool: ...
    @property
    def ref_memory_segment(self) -> typing.Optional[builtins.str]: ...
    @property
    def symbol_link(self) -> SymbolLink | None: ...
    @property
    def r#virtual(self) -> typing.Optional[builtins.list[builtins.str]]: ...

@typing.final
class Module:
    @property
    def name(self) -> builtins.str: ...
    @property
    def long_identifier(self) -> builtins.str: ...
    @property
    def measurements(self) -> list[Measurement]: ...
    @property
    def compu_methods(self) -> list[CompuMethod]: ...
    @property
    def compu_tabs(self) -> list[CompuTab]: ...
    @property
    def compu_vtabs(self) -> list[CompuVtab]: ...
    @property
    def compu_vtab_ranges(self) -> list[CompuVtabRange]: ...
    @property
    def units(self) -> list[Unit]: ...
    @property
    def if_data(self) -> list[IfData]: ...
    @property
    def mod_common_byte_order(self) -> typing.Optional[builtins.str]: ...
    @property
    def mod_par_epk(self) -> typing.Optional[builtins.str]: ...
    @property
    def mod_par_addr_epk(self) -> list[int]: ...
    def get_measurement(self, name: builtins.str) -> Measurement | None: ...
    def get_compu_method(self, name: builtins.str) -> CompuMethod | None: ...
    def get_unit(self, name: builtins.str) -> Unit | None: ...
    def get_compu_tab(self, name: builtins.str) -> CompuTab | CompuVtab | CompuVtabRange | None: ...

@typing.final
class SiExponents:
    @property
    def length(self) -> builtins.int: ...
    @property
    def mass(self) -> builtins.int: ...
    @property
    def time(self) -> builtins.int: ...
    @property
    def electric_current(self) -> builtins.int: ...
    @property
    def temperature(self) -> builtins.int: ...
    @property
    def amount_of_substance(self) -> builtins.int: ...
    @property
    def luminous_intensity(self) -> builtins.int: ...

@typing.final
class SymbolLink:
    @property
    def symbol_name(self) -> builtins.str: ...
    @property
    def offset(self) -> builtins.int: ...

@typing.final
class TabEntry:
    @property
    def in_val(self) -> builtins.float: ...
    @property
    def out_val(self) -> builtins.float: ...

@typing.final
class Unit:
    @property
    def name(self) -> builtins.str: ...
    @property
    def long_identifier(self) -> builtins.str: ...
    @property
    def display(self) -> builtins.str: ...
    @property
    def unit_type(self) -> builtins.str: ...
    @property
    def ref_unit(self) -> typing.Optional[builtins.str]: ...
    @property
    def referenced_unit(self) -> Unit | None: ...
    @property
    def si_exponents(self) -> SiExponents | None: ...
    @property
    def unit_conversion(self) -> UnitConversion | None: ...

@typing.final
class UnitConversion:
    @property
    def gradient(self) -> builtins.float: ...
    @property
    def offset(self) -> builtins.float: ...

@typing.final
class ValuePair:
    @property
    def in_val(self) -> builtins.float: ...
    @property
    def out_val(self) -> builtins.str: ...

@typing.final
class ValueTriple:
    @property
    def in_val_min(self) -> builtins.float: ...
    @property
    def in_val_max(self) -> builtins.float: ...
    @property
    def out_val(self) -> builtins.str: ...

def load(path: builtins.str, a2ml_spec: typing.Optional[builtins.str] = None) -> A2lFile: ...

def load_from_string(text: builtins.str, a2ml_spec: typing.Optional[builtins.str] = None) -> A2lFile: ...

