import typing
from odoorpc import fields as fields
from odoorpc.models import Model as Model
from odoorpc.tools import v as v

if typing.TYPE_CHECKING:
    from odoorpc import ODOO

FIELDS_RESERVED: list[str]

class Environment:
    def __init__(self, odoo: ODOO, db: str, uid: int, context: str) -> None: ...
    @property
    def dirty(self): ...
    @property
    def context(self) -> dict: ...
    @property
    def db(self) -> str: ...
    def commit(self) -> None: ...
    def invalidate(self) -> None: ...
    @property
    def lang(self) -> str: ...
    def ref(self, xml_id): ...
    @property
    def uid(self) -> int: ...
    @property
    def user(self): ...
    @property
    def registry(self): ...
    def __getitem__(self, model): ...
    def __call__(self, context: dict | None = None): ...
    def __contains__(self, model) -> bool: ...
