"""
This type stub file was generated by pyright.
"""

from dataclasses import dataclass
from datetime import datetime

"""
This type stub file was generated by pyright.
"""

@dataclass
class Zone:
    index: int
    consigne_normal: float
    consigne_reduit: float
    consigne_horsgel: float
    mode_select: int
    mode: int
    zone_nom: str = ...
    temperature_max: float | None = ...
    temperature_min: float | None = ...
    zone_active: int | None = ...
    extra: dict[str, str] = ...

@dataclass
class Input:
    index: int
    valeur: int
    alias: str = ...
    id: int | None = ...
    flag: int | None = ...
    adr: int | None = ...
    type: int | None = ...
    esclave: int | None = ...
    min: int | None = ...
    max: int | None = ...
    extra: dict[str, str] = ...

@dataclass
class Output:
    index: int
    valeur: int
    alias: str = ...
    id: int | None = ...
    flag: int | None = ...
    adr: int | None = ...
    type: int | None = ...
    esclave: int | None = ...
    min: int | None = ...
    max: int | None = ...
    extra: dict[str, str] = ...

@dataclass
class Measurement:
    index: int
    valeur: float
    unit: str = ...
    alias: str = ...
    id: int | None = ...
    flag: int | None = ...
    type: int | None = ...
    extra: dict[str, str] = ...

@dataclass
class Parameter:
    index: int
    nom: str
    valeur: float
    min: float
    max: float
    pas: float
    id: int | None = ...
    extra: dict[str, str] = ...

@dataclass
class Label:
    index: int
    labels: dict[str, str] = ...

@dataclass
class ModbusRegister:
    index: int
    resultat: int | None = ...
    etat: str = ...
    nom_registre: str = ...
    nom_esclave: str = ...
    esclave: int | None = ...
    fonction: int | None = ...
    adresse: int | None = ...
    valeur: int | None = ...
    id: int | None = ...
    flag: int | None = ...
    extra: dict[str, str] = ...

@dataclass
class Configuration:
    index: int
    settings: dict[str, str] = ...

@dataclass
class AnalogSensor:
    index: int
    valeur: float
    unit: str = ...
    alias: str = ...
    id: int | None = ...
    flag: int | None = ...
    adr: int | None = ...
    type: str = ...
    min: int | None = ...
    max: int | None = ...
    esclave: int | None = ...
    etat: int | None = ...
    extra: dict[str, str] = ...

@dataclass
class Memory:
    index: int
    state: dict[str, str] = ...

@dataclass
class MappedFrame:
    is_old: bool
    timestamp: datetime
    count: int | None
    zones: dict[int, Zone]
    inputs: dict[int, Input]
    outputs: dict[int, Output]
    measurements: dict[int, Measurement]
    parameters: dict[int, Parameter]
    labels: dict[int, Label]
    modbus_registers: dict[int, ModbusRegister]
    analog_sensors: dict[int, AnalogSensor]
    configuration: Configuration | None
    memory: Memory | None
    def as_json(self, indent: int | None = ..., ensure_ascii: bool = ...) -> str: ...
