from .client import post_request as post_request
from dataclasses import dataclass
from typing import Any, Self

@dataclass
class MoneybirdModel:
    id: int | None = ...
    @property
    def endpoint(self) -> str: ...
    def to_dict(self, exclude_none: bool = False) -> dict[str, Any]: ...
    def load(self, id: int) -> None: ...
    def save(self) -> None: ...
    def update(self, data: dict[str, Any]) -> None: ...
    def delete(self) -> None: ...
    @classmethod
    def find_by_id(cls, id: int) -> Self: ...
    @classmethod
    def update_by_id(cls, id: int, data: dict[str, Any]) -> Self: ...
    @classmethod
    def delete_by_id(cls, id: int) -> Self: ...
    @classmethod
    def from_dict(cls, data: dict[str, Any]) -> Self: ...
    def __init__(self, id=...) -> None: ...
