from cmd import Cmd
from collections.abc import Callable
from typing import Any, ClassVar, TextIO

import click

class ClickCmd(Cmd):
    nocommand: ClassVar[str]
    def __init__(
        self,
        ctx: click.Context | None = None,
        on_finished: Callable[[click.Context], None] | None = None,
        hist_file: str | None = None,
        completekey: str = "tab",
        stdin: TextIO | None = None,
        stdout: TextIO | None = None,
    ) -> None: ...
    def preloop(self) -> None: ...
    def postloop(self) -> None: ...
    def cmdloop(self, intro: str | None = None) -> None: ...
    def get_prompt(self) -> str | None: ...
    def emptyline(self) -> bool: ...
    def default(self, line: str) -> None: ...
    def get_names(self) -> list[str]: ...
    def do_help(self, arg: str) -> None: ...
    def do_quit(self, arg: str) -> bool: ...
    def do_exit(self, arg: str) -> bool: ...
    def print_topics(self, header: Any, cmds: list[str] | None, cmdlen: int, maxcol: int) -> None: ...
