from ..models import DirectoryHandlers, Handlers
from .archive import (
    airoha,
    ar,
    arc,
    arj,
    cab,
    cpio,
    dmg,
    msi,
    par2,
    partclone,
    rar,
    sevenzip,
    stuffit,
    tar,
)
from .archive import (
    zip as ziparchive,
)
from .archive.autel import ecc
from .archive.dlink import alpha_encimg, deafbead, encrpted_img, fpkg, shrs
from .archive.engeniustech import engenius
from .archive.hp import bdl, ipkg
from .archive.instar import bneg, instar_hd
from .archive.moxa import frm
from .archive.netgear import chk, trx
from .archive.qnap import qnap_nas, qnap_networking
from .archive.tesla import sbfh
from .archive.xiaomi import hdr
from .compression import (
    bzip2,
    compress,
    gzip,
    lz4,
    lzh,
    lzip,
    lzma,
    lzo,
    qnx_deflate,
    uzip,
    xz,
    zlib,
    zstd,
)
from .executable import elf, xalz
from .filesystem import (
    btrfs_stream,
    cramfs,
    extfs,
    fat,
    iso9660,
    jffs2,
    minixfs,
    ntfs,
    romfs,
    squashfs,
    ubi,
    ufs,
    yaffs,
)
from .filesystem.android import erofs, sparse

__all__ = [
    "BUILTIN_DIR_HANDLERS",
    "BUILTIN_HANDLERS",
    "DirectoryHandlers",
    "Handlers",
]

BUILTIN_HANDLERS: Handlers = (
    cramfs.CramFSHandler,
    deafbead.DeafBeadHandler,
    extfs.EXTHandler,
    fat.FATHandler,
    jffs2.JFFS2NewHandler,
    jffs2.JFFS2OldHandler,
    minixfs.MinixFSv1Handler,
    minixfs.MinixFSv2Handler,
    minixfs.MinixFSv3Handler,
    ntfs.NTFSHandler,
    romfs.RomFSFSHandler,
    squashfs.SquashFSv1Handler,
    squashfs.SquashFSv2Handler,
    squashfs.SquashFSv2NonStandardHandler,
    squashfs.SquashFSv3Handler,
    squashfs.SquashFSv3DDWRTHandler,
    squashfs.SquashFSv3BroadcomHandler,
    squashfs.SquashFSv3NSHandler,
    squashfs.SquashFSv4LEHandler,
    squashfs.SquashFSv4BEHandler,
    squashfs.SquashFSv4BroadcomHandler,
    ubi.UBIHandler,
    ubi.UBIFSHandler,
    yaffs.YAFFSHandler,
    frm.MoxaFRMHandler,
    chk.NetgearCHKHandler,
    trx.NetgearTRXv1Handler,
    trx.NetgearTRXv2Handler,
    encrpted_img.EncrptedHandler,
    shrs.SHRSHandler,
    alpha_encimg.AlphaEncimgHandler,
    alpha_encimg.AlphaEncimgV2Handler,
    fpkg.FPKGHandler,
    hdr.HDR1Handler,
    hdr.HDR2Handler,
    qnap_nas.QnapHandler,
    qnap_networking.QnapNetworkingHandler,
    bneg.BNEGHandler,
    bdl.HPBDLHandler,
    instar_hd.InstarHDHandler,
    ipkg.HPIPKGHandler,
    sparse.SparseHandler,
    ar.ARHandler,
    arc.ARCHandler,
    arj.ARJHandler,
    cab.CABHandler,
    msi.MsiHandler,
    tar.TarUstarHandler,
    tar.TarUnixHandler,
    cpio.PortableASCIIHandler,
    cpio.PortableASCIIWithCRCHandler,
    cpio.PortableOldASCIIHandler,
    cpio.BinaryHandler,
    sevenzip.SevenZipHandler,
    rar.RarHandler,
    ziparchive.ZIPHandler,
    dmg.DMGHandler,
    iso9660.ISO9660FSHandler,
    stuffit.StuffItSITHandler,
    stuffit.StuffIt5Handler,
    bzip2.BZip2Handler,
    compress.UnixCompressHandler,
    gzip.GZIPHandler,
    lzh.LZHHandler,
    lzip.LZipHandler,
    lzo.LZOHandler,
    lzma.LZMAHandler,
    lz4.LegacyFrameHandler,
    lz4.SkippableFrameHandler,
    lz4.DefaultFrameHandler,
    xz.XZHandler,
    zstd.ZSTDHandler,
    elf.ELF32Handler,
    elf.ELF64Handler,
    zlib.ZlibHandler,
    engenius.EngeniusHandler,
    ecc.AutelECCHandler,
    uzip.UZIPHandler,
    erofs.EROFSHandler,
    partclone.PartcloneHandler,
    xalz.XALZHandler,
    qnx_deflate.QNXDeflateHandler,
    ufs.UFS1Handler,
    ufs.UFS2Handler,
    ufs.SolarisHandler,
    btrfs_stream.BTRFSStreamHandler,
    sbfh.SBFHHandler,
    airoha.AirohaHandler,
)

BUILTIN_DIR_HANDLERS: DirectoryHandlers = (
    sevenzip.MultiVolumeSevenZipHandler,
    gzip.MultiVolumeGzipHandler,
    par2.MultiVolumePAR2Handler,
)
