# This file is automatically generated by pyo3_stub_gen
# ruff: noqa: E501, F401

import builtins
import typing

@typing.final
class FaaCollection:
    def __len__(self) -> builtins.int: ...
    def __contains__(self, tag: builtins.str) -> builtins.bool: ...
    def __repr__(self) -> builtins.str: ...
    def __getitem__(self, tag: builtins.str) -> PyFaaInfo: ...
    def values(self) -> list: ...
    def items(self) -> list: ...
    def keys(self) -> list: ...
    def __iter__(self) -> LocusTagIterator: ...
    def to_json(self) -> builtins.str:
        r"""
        Serializes the collection to a formatted JSON string
        """

@typing.final
class FeatureCollection:
    def __len__(self) -> builtins.int: ...
    def __contains__(self, tag: builtins.str) -> builtins.bool: ...
    def __repr__(self) -> builtins.str: ...
    def __getitem__(self, tag: builtins.str) -> PyFeatureInfo: ...
    def values(self) -> list: ...
    def items(self) -> list: ...
    def keys(self) -> list: ...
    def __iter__(self) -> LocusTagIterator: ...
    def to_json(self) -> builtins.str:
        r"""
        Serializes the collection to a formatted JSON string
        """

@typing.final
class FfnCollection:
    def __len__(self) -> builtins.int: ...
    def __contains__(self, tag: builtins.str) -> builtins.bool: ...
    def __repr__(self) -> builtins.str: ...
    def __getitem__(self, tag: builtins.str) -> PyFfnInfo: ...
    def values(self) -> list: ...
    def items(self) -> list: ...
    def keys(self) -> list: ...
    def __iter__(self) -> LocusTagIterator: ...
    def to_json(self) -> builtins.str:
        r"""
        Serializes the collection to a formatted JSON string
        """

@typing.final
class LocusTagIterator:
    def __iter__(self) -> LocusTagIterator: ...
    def __next__(self) -> typing.Optional[builtins.str]: ...

@typing.final
class PyFaaInfo:
    @property
    def locus_tag(self) -> builtins.str: ...
    @property
    def faa(self) -> builtins.str: ...
    def __repr__(self) -> builtins.str: ...

@typing.final
class PyFeatureInfo:
    @property
    def locus_tag(self) -> builtins.str: ...
    @property
    def gene(self) -> typing.Optional[builtins.str]: ...
    @property
    def product(self) -> typing.Optional[builtins.str]: ...
    @property
    def start(self) -> typing.Optional[builtins.int]: ...
    @property
    def stop(self) -> typing.Optional[builtins.int]: ...
    @property
    def strand(self) -> typing.Optional[builtins.int]: ...
    @property
    def codon_start(self) -> typing.Optional[builtins.int]: ...
    @property
    def extras(self) -> builtins.list[builtins.str]: ...
    def __repr__(self) -> builtins.str: ...

@typing.final
class PyFfnInfo:
    @property
    def locus_tag(self) -> builtins.str: ...
    @property
    def ffn(self) -> builtins.str: ...
    def __repr__(self) -> builtins.str: ...

@typing.final
class PyRecord:
    def id(self) -> builtins.str: ...
    def sequence(self) -> builtins.str: ...
    def locus_tag(self) -> builtins.list[builtins.str]: ...
    def sequences(self) -> SequenceCollection: ...
    def features(self) -> FeatureCollection: ...
    def faa(self) -> FaaCollection: ...
    def ffn(self) -> FfnCollection: ...
    def __repr__(self) -> builtins.str: ...
    def __getitem__(self, tag: builtins.str) -> typing.Any: ...

@typing.final
class PySequenceInfo:
    @property
    def locus_tag(self) -> builtins.str: ...
    @property
    def faa(self) -> typing.Optional[builtins.str]: ...
    @property
    def ffn(self) -> typing.Optional[builtins.str]: ...
    @property
    def extras(self) -> builtins.list[builtins.str]: ...
    def __repr__(self) -> builtins.str: ...

@typing.final
class RecordCollection:
    def __new__(cls) -> RecordCollection: ...
    def __len__(self) -> builtins.int: ...
    def __contains__(self, id: builtins.str) -> builtins.bool: ...
    def __repr__(self) -> builtins.str: ...
    def __getitem__(self, record_id: builtins.str) -> PyRecord: ...
    def keys(self) -> list: ...
    def __iter__(self) -> LocusTagIterator: ...
    def insert(self, record_id: builtins.str, record: PyRecord) -> None: ...
    def write_faa(self, filename: builtins.str) -> tuple[builtins.str, builtins.int]: ...
    def write_ffn(self, filename: builtins.str) -> tuple[builtins.str, builtins.int]: ...
    def write_fna(self, filename: builtins.str) -> tuple[builtins.str, builtins.int]: ...
    def values(self) -> list: ...
    def items(self) -> list: ...
    def to_json(self) -> builtins.str:
        r"""
        Serializes the RecordCollection to a formatted JSON string
        """

@typing.final
class SequenceCollection:
    def __len__(self) -> builtins.int: ...
    def __contains__(self, tag: builtins.str) -> builtins.bool: ...
    def __repr__(self) -> builtins.str: ...
    def __getitem__(self, tag: builtins.str) -> PySequenceInfo: ...
    def values(self) -> list: ...
    def items(self) -> list: ...
    def keys(self) -> list: ...
    def __iter__(self) -> LocusTagIterator: ...
    def to_json(self) -> builtins.str:
        r"""
        Serializes the collection to a formatted JSON string
        """

def amino_counts(seq: builtins.str) -> builtins.dict[builtins.str, builtins.int]: ...

def amino_percentage(seq: builtins.str) -> builtins.dict[builtins.str, builtins.float]: ...

def embl_to_faa(filename: builtins.str) -> FaaCollection: ...

def embl_to_ffn(filename: builtins.str) -> FfnCollection: ...

def embl_to_fna(filename: builtins.str) -> RecordCollection: ...

def embl_to_gff(filename: builtins.str, dna: builtins.bool) -> None: ...

def gbk_to_faa(filename: builtins.str) -> FaaCollection: ...

def gbk_to_faa_count(filename: builtins.str) -> builtins.int: ...

def gbk_to_ffn(filename: builtins.str) -> FfnCollection: ...

def gbk_to_fna(filename: builtins.str) -> RecordCollection: ...

def gbk_to_gff(filename: builtins.str, dna: builtins.bool) -> None: ...

def get_consensus(filename: builtins.str) -> builtins.str: ...

def hydrophobicity(seq: builtins.str, window_size: builtins.int) -> builtins.list[builtins.float]: ...

def parse_embl(filename: builtins.str) -> RecordCollection: ...

def parse_gbk(filename: builtins.str) -> RecordCollection: ...

def parse_tabular(path: builtins.str) -> typing.Any: ...

def parse_xml(path: builtins.str) -> typing.Any: ...

def purge_gaps(input: builtins.str, output: builtins.str, threshold: builtins.float) -> None: ...

def subset_msa_alignment(filename: builtins.str, row_index: tuple[builtins.int, builtins.int], col_index: tuple[builtins.int, builtins.int]) -> builtins.list[builtins.str]: ...

