from typing import Iterator, Sequence

class Gene:
    @property
    def _data(self) -> str: ...
    @property
    def begin(self) -> int: ...
    @property
    def end(self) -> int: ...
    @property
    def strand(self) -> int: ...
    @property
    def partial_begin(self) -> bool: ...
    @property
    def partial_end(self) -> bool: ...
    @property
    def start_type(self) -> str: ...
    @property
    def rbs_motif(self) -> Optional[str]: ...
    @property
    def rbs_spacer(self) -> Optional[str]: ...
    @property
    def gc_cont(self) -> float: ...
    def translate(self) -> str: ...


class Genes(Sequence[Gene]):
    def __len__(self) -> int: ...
    def __getitem__(self, index: int) -> Gene: ...
    def __iter__(self) -> Iterator[Gene]: ...
    def __reversed__(self) -> Iterator[Gene]: ...


class Pyrodigal:
    closed: bool
    meta: bool
    _num_seq: int

    def __init__(self, meta: bool = False, closed: bool = False) -> None: ...
    def find_genes(self, sequence: str) -> Genes: ...
