from typing import Any, Literal

from sympy.printing.defaults import DefaultPrinting

class PolycyclicGroup(DefaultPrinting):
    is_group = ...
    is_solvable = ...
    def __init__(self, pc_sequence, pc_series, relative_order, collector=...) -> None: ...
    def is_prime_order(self) -> bool: ...
    def length(self) -> int: ...

class Collector(DefaultPrinting):
    def __init__(self, pcgs, pc_series, relative_order, free_group_=..., pc_presentation=...) -> None: ...
    def minimal_uncollected_subword(
        self, word
    ) -> tuple[tuple[Any, Any]] | tuple[tuple[Any, Any], tuple[Any, Literal[1, -1]]] | None: ...
    def relations(self) -> tuple[dict[Any, Any], dict[Any, Any]]: ...
    def subword_index(self, word, w) -> tuple[Literal[-1], Literal[-1]] | tuple[int, int]: ...
    def map_relation(self, w): ...
    def collected_word(self, word): ...
    def pc_relators(self) -> dict[Any, Any]: ...
    def exponent_vector(self, element) -> list[int]: ...
    def depth(self, element) -> int: ...
    def leading_exponent(self, element) -> int | None: ...
    def induced_pcgs(self, gens) -> list[int]: ...
    def constructive_membership_test(self, ipcgs, g) -> list[int] | Literal[False]: ...
