# THIS FILE IS AUTOMATICALLY GENERATED, DO NOT EDIT MANUALLY.

from typing import Any, Dict, Iterable, List, Optional

from pathlib import Path
from doit.cmd_base import TaskLoader
from doit.doit_cmd import DoitMain
from .model import ContentHierarchy

import kirlent

TaskDesc = Dict[str, Any]

def task_create_build_folders(
    unit: kirlent.Unit, folder: Path
) -> TaskDesc: ...
def task_clean_build_folders(unit: kirlent.Unit, folder: Path) -> TaskDesc: ...
def task_generate_revealjs_sources(
    unit: kirlent.Unit, sources: List[Path], output: Path
) -> TaskDesc: ...
def task_generate_revealjs_slides(
    unit: kirlent.Unit, source: Path, output: Path
) -> TaskDesc: ...
def task_generate_decktape_slides(
    unit: kirlent.Unit, source: Path, output: Path
) -> TaskDesc: ...

class TaskGenerator(TaskLoader):
    content = ...  # type: ContentHierarchy
    out = ...  # type: Path
    doit_config = ...  # type: Dict[str, Any]
    def __init__(self, src: Path, out: Path, *, deps: Path) -> None: ...
    def generate_tasks(self) -> Iterable[TaskDesc]: ...

class TaskManager:
    loader = ...  # type: TaskGenerator
    runner = ...  # type: Optional[DoitMain]
    def __init__(self, src: Path, out: Path, *, deps: Path = ...) -> None: ...
    def run(
        self,
        task: str,
        *,
        pattern: Optional[str] = ...,
        exits: Optional[bool] = ...,
    ) -> int: ...
