from .client import http_delete as http_delete, http_get as http_get, http_patch as http_patch, http_post as http_post
from _typeshed import Incomplete
from pydantic import BaseModel
from typing import Any, Self

class MoneybirdModel(BaseModel):
    id: int | None
    model_config: Incomplete
    @property
    def endpoint(self) -> str: ...
    def to_dict(self) -> 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: ...
