MATCH_KIND_LEFTMOST_FIRST: int
MATCH_KIND_LEFTMOST_LONGEST: int
MATCH_KIND_STANDARD: int

class Automaton:
    def __init__(self, patterns: list[str], match_kind: int = 0) -> None: ...
    def find(self, haystack: str) -> list[tuple[int, int, int]]: ...
    def find_as_strings(self, haystack: str) -> list[str]: ...
    def find_overlapping(self, haystack: str) -> list[tuple[int, int, int]]: ...
    def find_overlapping_as_strings(self, haystack: str) -> list[str]: ...
    def find_overlapping_no_suffix(self, haystack: str) -> list[tuple[int, int, int]]: ...
    def find_overlapping_no_suffix_as_strings(self, haystack: str) -> list[str]: ...
