# 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: ...
