# Code generated by lark_sdk_gen. DO NOT EDIT.

import typing
from pylark.lark_request import Response

from pylark.api_service_task_collaborator_create import (
    CreateTaskCollaboratorReq,
    CreateTaskCollaboratorResp,
    _gen_create_task_collaborator_req,
)
from pylark.api_service_task_collaborator_list import (
    GetTaskCollaboratorListReq,
    GetTaskCollaboratorListResp,
    _gen_get_task_collaborator_list_req,
)
from pylark.api_service_task_collaborator_delete import (
    DeleteTaskCollaboratorReq,
    DeleteTaskCollaboratorResp,
    _gen_delete_task_collaborator_req,
)
from pylark.api_service_task_follower_create import (
    CreateTaskFollowerReq,
    CreateTaskFollowerResp,
    _gen_create_task_follower_req,
)
from pylark.api_service_task_follower_list import (
    GetTaskFollowerListReq,
    GetTaskFollowerListResp,
    _gen_get_task_follower_list_req,
)
from pylark.api_service_task_follower_delete import (
    DeleteTaskFollowerReq,
    DeleteTaskFollowerResp,
    _gen_delete_task_follower_req,
)
from pylark.api_service_task_reminder_create import (
    CreateTaskReminderReq,
    CreateTaskReminderResp,
    _gen_create_task_reminder_req,
)
from pylark.api_service_task_reminder_list import (
    GetTaskReminderListReq,
    GetTaskReminderListResp,
    _gen_get_task_reminder_list_req,
)
from pylark.api_service_task_reminder_delete import (
    DeleteTaskReminderReq,
    DeleteTaskReminderResp,
    _gen_delete_task_reminder_req,
)
from pylark.api_service_task_task_create import (
    CreateTaskReq,
    CreateTaskResp,
    _gen_create_task_req,
)
from pylark.api_service_task_task import GetTaskReq, GetTaskResp, _gen_get_task_req
from pylark.api_service_task_task_delete import (
    DeleteTaskReq,
    DeleteTaskResp,
    _gen_delete_task_req,
)
from pylark.api_service_task_task_update import (
    UpdateTaskReq,
    UpdateTaskResp,
    _gen_update_task_req,
)
from pylark.api_service_task_task_complete import (
    CompleteTaskReq,
    CompleteTaskResp,
    _gen_complete_task_req,
)
from pylark.api_service_task_task_uncomplete import (
    UncompleteTaskReq,
    UncompleteTaskResp,
    _gen_uncomplete_task_req,
)


if typing.TYPE_CHECKING:
    from lark import Lark


class LarkTaskService(object):
    cli: "Lark"

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

    def create_task_collaborator(
        self, request: CreateTaskCollaboratorReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateTaskCollaboratorResp, Response]:
        return self.cli.raw_request(_gen_create_task_collaborator_req(request, options))

    def get_task_collaborator_list(
        self, request: GetTaskCollaboratorListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetTaskCollaboratorListResp, Response]:
        return self.cli.raw_request(
            _gen_get_task_collaborator_list_req(request, options)
        )

    def delete_task_collaborator(
        self, request: DeleteTaskCollaboratorReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteTaskCollaboratorResp, Response]:
        return self.cli.raw_request(_gen_delete_task_collaborator_req(request, options))

    def create_task_follower(
        self, request: CreateTaskFollowerReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateTaskFollowerResp, Response]:
        return self.cli.raw_request(_gen_create_task_follower_req(request, options))

    def get_task_follower_list(
        self, request: GetTaskFollowerListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetTaskFollowerListResp, Response]:
        return self.cli.raw_request(_gen_get_task_follower_list_req(request, options))

    def delete_task_follower(
        self, request: DeleteTaskFollowerReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteTaskFollowerResp, Response]:
        return self.cli.raw_request(_gen_delete_task_follower_req(request, options))

    def create_task_reminder(
        self, request: CreateTaskReminderReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateTaskReminderResp, Response]:
        return self.cli.raw_request(_gen_create_task_reminder_req(request, options))

    def get_task_reminder_list(
        self, request: GetTaskReminderListReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetTaskReminderListResp, Response]:
        return self.cli.raw_request(_gen_get_task_reminder_list_req(request, options))

    def delete_task_reminder(
        self, request: DeleteTaskReminderReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteTaskReminderResp, Response]:
        return self.cli.raw_request(_gen_delete_task_reminder_req(request, options))

    def create_task(
        self, request: CreateTaskReq, options: typing.List[str] = None
    ) -> typing.Tuple[CreateTaskResp, Response]:
        return self.cli.raw_request(_gen_create_task_req(request, options))

    def get_task(
        self, request: GetTaskReq, options: typing.List[str] = None
    ) -> typing.Tuple[GetTaskResp, Response]:
        return self.cli.raw_request(_gen_get_task_req(request, options))

    def delete_task(
        self, request: DeleteTaskReq, options: typing.List[str] = None
    ) -> typing.Tuple[DeleteTaskResp, Response]:
        return self.cli.raw_request(_gen_delete_task_req(request, options))

    def update_task(
        self, request: UpdateTaskReq, options: typing.List[str] = None
    ) -> typing.Tuple[UpdateTaskResp, Response]:
        return self.cli.raw_request(_gen_update_task_req(request, options))

    def complete_task(
        self, request: CompleteTaskReq, options: typing.List[str] = None
    ) -> typing.Tuple[CompleteTaskResp, Response]:
        return self.cli.raw_request(_gen_complete_task_req(request, options))

    def uncomplete_task(
        self, request: UncompleteTaskReq, options: typing.List[str] = None
    ) -> typing.Tuple[UncompleteTaskResp, Response]:
        return self.cli.raw_request(_gen_uncomplete_task_req(request, options))
