from _typeshed import Incomplete
from lexoffice_client.common import CreateResponse as CreateResponse
from lexoffice_client.contact import Contact as Contact, ContactWritable as ContactWritable
from lexoffice_client.voucher import Voucher as Voucher, VoucherWritable as VoucherWritable
from uuid import UUID

class LexofficeClient:
    client: Incomplete
    def __init__(self, access_token: str, base_url: str = 'https://api.lexoffice.io/v1') -> None: ...
    def ping(self) -> None: ...
    def create_contact(self, contact: ContactWritable) -> CreateResponse: ...
    def retrieve_contact(self, contact_id: UUID) -> Contact: ...
    def filter_contacts(self, email: str | None = None, name: str | None = None, number: int | None = None, customer: bool | None = None, vendor: bool | None = None) -> list[Contact]: ...
    def create_voucher(self, voucher: VoucherWritable) -> CreateResponse: ...
    def retrieve_voucher(self, voucher_id: UUID) -> Voucher: ...
