from __future__ import annotations

import argparse
from typing import Any, Iterable

from ..gamma import GAMMA_REGISTRY
from ..types import ArgSpec
from .utils import spec

GRAMMAR_ARG_SPECS: tuple[ArgSpec, ...]
HISTORY_ARG_SPECS: tuple[ArgSpec, ...]
COMMON_ARG_SPECS: tuple[ArgSpec, ...]

def add_arg_specs(parser: argparse._ActionsContainer, specs: Iterable[ArgSpec]) -> None: ...
def _args_to_dict(args: argparse.Namespace, prefix: str) -> dict[str, Any]: ...
def add_common_args(parser: argparse.ArgumentParser) -> None: ...
def add_grammar_args(parser: argparse.ArgumentParser) -> None: ...
def add_grammar_selector_args(parser: argparse.ArgumentParser) -> None: ...
def add_history_export_args(parser: argparse.ArgumentParser) -> None: ...
def add_canon_toggle(parser: argparse.ArgumentParser) -> None: ...
def _add_run_parser(sub: argparse._SubParsersAction) -> None: ...
def _add_sequence_parser(sub: argparse._SubParsersAction) -> None: ...
def _add_metrics_parser(sub: argparse._SubParsersAction) -> None: ...
def _add_profile_parser(sub: argparse._SubParsersAction) -> None: ...
def _add_profile_pipeline_parser(sub: argparse._SubParsersAction) -> None: ...
def _add_math_run_parser(sub: argparse._SubParsersAction) -> None: ...
def _add_epi_validate_parser(sub: argparse._SubParsersAction) -> None: ...
