from pwnv.cli.utils.config import (
    get_config_path,
    get_ctfs_path,
    load_config,
    save_config,
)
from pwnv.cli.utils.crud import (
    add_challenge,
    add_ctf,
    add_tags,
    challenges_for_ctf,
    ctfs_with_challenges,
    get_challenges,
    get_ctf_by_challenge,
    get_ctfs,
    get_current_challenge,
    get_current_ctf,
    get_running_ctfs,
    get_solved_challenges,
    get_stopped_ctfs,
    get_tags,
    get_unsolved_challenges,
    is_duplicate,
    remove_challenge,
    remove_ctf,
    update_challenge,
    update_ctf,
)
from pwnv.cli.utils.guards import challenges_exists, config_exists, ctfs_exists
from pwnv.cli.utils.remote import (
    add_remote_ctf,
    normalise_category,
    remote_solve,
    sanitize,
)
from pwnv.cli.utils.ui import (
    command,
    error,
    info,
    prompt_category_selection,
    prompt_challenge_selection,
    prompt_confirm,
    prompt_ctf_selection,
    prompt_fuzzy_select,
    prompt_tags_selection,
    prompt_text,
    show_challenge,
    show_ctf,
    success,
    warn,
)

__all__ = [
    # config
    "get_config_path",
    "get_ctfs_path",
    "load_config",
    "save_config",
    # crud
    "add_challenge",
    "add_ctf",
    "add_tags",
    "challenges_for_ctf",
    "ctfs_with_challenges",
    "get_challenges",
    "get_ctf_by_challenge",
    "get_ctfs",
    "get_current_challenge",
    "get_current_ctf",
    "get_running_ctfs",
    "get_solved_challenges",
    "get_stopped_ctfs",
    "get_tags",
    "get_unsolved_challenges",
    "is_duplicate",
    "remove_challenge",
    "remove_ctf",
    "update_challenge",
    "update_ctf",
    # guards
    "challenges_exists",
    "config_exists",
    "ctfs_exists",
    # remote
    "add_remote_ctf",
    "normalise_category",
    "remote_solve",
    "sanitize",
    # ui
    "prompt_confirm",
    "error",
    "prompt_fuzzy_select",
    "prompt_category_selection",
    "prompt_challenge_selection",
    "prompt_ctf_selection",
    "prompt_tags_selection",
    "prompt_text",
    "show_challenge",
    "show_ctf",
    "success",
    "warn",
    "info",
    "command",
]
