from typing import AnyStr, Dict
from saas.library.python.token_store import PersistentTokenStore

from saas.library.python.sandbox.api import SandboxApi
from saas.library.python.sandbox.task import SandboxTask


class SandboxExecutor(object):
    def __init__(self, default_owner: AnyStr, default_task_type: AnyStr=None, default_notifications: AnyStr=None,
                 oauth_token: AnyStr=None):
        self.sandbox_api: SandboxApi = ...
        self.default_owner = default_owner
        self.default_task_type = default_task_type
        self.default_notifications = default_notifications

    def add_task(self, params: Dict, description: AnyStr=None, task_type: AnyStr=None, owner: AnyStr=None, notifications: AnyStr=None) -> SandboxTask: ...

    def run_from_params(self, *args, **kwargs) -> SandboxTask: ...

    def wait_from_params(self, *args, **kwargs) -> SandboxTask: ...
