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

import os
import pathlib
import typing

class GenomicInterval:
    r"""
    A segment is a genomic interval defined by a chromosome, a start position and an end position.
    The start position is inclusive and the end position is exclusive.
    """

    start: int
    end: int
    chr: str
    def __new__(cls,chr:str, start:int, end:int): ...
    def set_chr(self, chr:str) -> None:
        ...

    def overlap(self, other:GenomicInterval) -> bool:
        ...

    def __repr__(self) -> str:
        ...


class PslAlignment:
    qname: str
    qsize: int
    qstart: int
    qend: int
    qmatch: int
    tname: str
    tsize: int
    tstart: int
    tend: int
    identity: float
    def __repr__(self) -> str:
        ...


def generate_unmaped_intervals(input:typing.Sequence[tuple[int, int]],total_length:int) -> list[tuple[int, int]]:
    ...

def highlight_targets(sequence:str,targets:typing.Sequence[tuple[int, int]],text_width:int | None) -> str:
    ...

def majority_voting(labels:typing.Sequence[int],window_size:int) -> list[int]:
    ...

def parse_psl_by_qname(file_path:str | os.PathLike | pathlib.Path) -> dict[str, list[PslAlignment]]:
    r"""Parse PSL file by query name."""

def remove_intervals_and_keep_left(seq:str,intervals:typing.Sequence[tuple[int, int]]) -> tuple[list[str], list[tuple[int, int]]]:
    ...

def reverse_complement(seq:str) -> str:
    ...

