# Code generated by lark_sdk_gen. DO NOT EDIT.

import typing
from pylark.lark_request import Response

from pylark.api_service_file_upload_image import (
    UploadImageReq,
    UploadImageResp,
    _gen_upload_image_req,
)
from pylark.api_service_file_download_image import (
    DownloadImageReq,
    DownloadImageResp,
    _gen_download_image_req,
)
from pylark.api_service_file_upload_file import (
    UploadFileReq,
    UploadFileResp,
    _gen_upload_file_req,
)
from pylark.api_service_file_download_file import (
    DownloadFileReq,
    DownloadFileResp,
    _gen_download_file_req,
)


if typing.TYPE_CHECKING:
    from lark import Lark


class LarkFileService(object):
    cli: "Lark"

    def __init__(self, cli: "Lark"):
        self.cli = cli

    def upload_image(
        self, request: UploadImageReq, options: typing.List[str] = None
    ) -> typing.Tuple[UploadImageResp, Response]:
        return self.cli.raw_request(_gen_upload_image_req(request, options))

    def download_image(
        self, request: DownloadImageReq, options: typing.List[str] = None
    ) -> typing.Tuple[DownloadImageResp, Response]:
        return self.cli.raw_request(_gen_download_image_req(request, options))

    def upload_file(
        self, request: UploadFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[UploadFileResp, Response]:
        return self.cli.raw_request(_gen_upload_file_req(request, options))

    def download_file(
        self, request: DownloadFileReq, options: typing.List[str] = None
    ) -> typing.Tuple[DownloadFileResp, Response]:
        return self.cli.raw_request(_gen_download_file_req(request, options))
