# This file was auto-generated by Fern from our API Definition.

import enum
import typing

T_Result = typing.TypeVar("T_Result")


class LlamaParseSupportedFileExtensions(str, enum.Enum):
    """
    An enumeration.
    """

    PDF = ".pdf"
    DOC = ".doc"
    DOCX = ".docx"
    DOCM = ".docm"
    DOT = ".dot"
    DOTX = ".dotx"
    DOTM = ".dotm"
    RTF = ".rtf"
    WPS = ".wps"
    WPD = ".wpd"
    SXW = ".sxw"
    STW = ".stw"
    SXG = ".sxg"
    PAGES = ".pages"
    MW = ".mw"
    MCW = ".mcw"
    UOT = ".uot"
    UOF = ".uof"
    UOS = ".uos"
    UOP = ".uop"
    PPT = ".ppt"
    PPTX = ".pptx"
    POT = ".pot"
    PPTM = ".pptm"
    POTX = ".potx"
    POTM = ".potm"
    KEY = ".key"
    ODP = ".odp"
    ODG = ".odg"
    OTP = ".otp"
    FOPD = ".fopd"
    SXI = ".sxi"
    STI = ".sti"
    EPUB = ".epub"

    def visit(
        self,
        pdf: typing.Callable[[], T_Result],
        doc: typing.Callable[[], T_Result],
        docx: typing.Callable[[], T_Result],
        docm: typing.Callable[[], T_Result],
        dot: typing.Callable[[], T_Result],
        dotx: typing.Callable[[], T_Result],
        dotm: typing.Callable[[], T_Result],
        rtf: typing.Callable[[], T_Result],
        wps: typing.Callable[[], T_Result],
        wpd: typing.Callable[[], T_Result],
        sxw: typing.Callable[[], T_Result],
        stw: typing.Callable[[], T_Result],
        sxg: typing.Callable[[], T_Result],
        pages: typing.Callable[[], T_Result],
        mw: typing.Callable[[], T_Result],
        mcw: typing.Callable[[], T_Result],
        uot: typing.Callable[[], T_Result],
        uof: typing.Callable[[], T_Result],
        uos: typing.Callable[[], T_Result],
        uop: typing.Callable[[], T_Result],
        ppt: typing.Callable[[], T_Result],
        pptx: typing.Callable[[], T_Result],
        pot: typing.Callable[[], T_Result],
        pptm: typing.Callable[[], T_Result],
        potx: typing.Callable[[], T_Result],
        potm: typing.Callable[[], T_Result],
        key: typing.Callable[[], T_Result],
        odp: typing.Callable[[], T_Result],
        odg: typing.Callable[[], T_Result],
        otp: typing.Callable[[], T_Result],
        fopd: typing.Callable[[], T_Result],
        sxi: typing.Callable[[], T_Result],
        sti: typing.Callable[[], T_Result],
        epub: typing.Callable[[], T_Result],
    ) -> T_Result:
        if self is LlamaParseSupportedFileExtensions.PDF:
            return pdf()
        if self is LlamaParseSupportedFileExtensions.DOC:
            return doc()
        if self is LlamaParseSupportedFileExtensions.DOCX:
            return docx()
        if self is LlamaParseSupportedFileExtensions.DOCM:
            return docm()
        if self is LlamaParseSupportedFileExtensions.DOT:
            return dot()
        if self is LlamaParseSupportedFileExtensions.DOTX:
            return dotx()
        if self is LlamaParseSupportedFileExtensions.DOTM:
            return dotm()
        if self is LlamaParseSupportedFileExtensions.RTF:
            return rtf()
        if self is LlamaParseSupportedFileExtensions.WPS:
            return wps()
        if self is LlamaParseSupportedFileExtensions.WPD:
            return wpd()
        if self is LlamaParseSupportedFileExtensions.SXW:
            return sxw()
        if self is LlamaParseSupportedFileExtensions.STW:
            return stw()
        if self is LlamaParseSupportedFileExtensions.SXG:
            return sxg()
        if self is LlamaParseSupportedFileExtensions.PAGES:
            return pages()
        if self is LlamaParseSupportedFileExtensions.MW:
            return mw()
        if self is LlamaParseSupportedFileExtensions.MCW:
            return mcw()
        if self is LlamaParseSupportedFileExtensions.UOT:
            return uot()
        if self is LlamaParseSupportedFileExtensions.UOF:
            return uof()
        if self is LlamaParseSupportedFileExtensions.UOS:
            return uos()
        if self is LlamaParseSupportedFileExtensions.UOP:
            return uop()
        if self is LlamaParseSupportedFileExtensions.PPT:
            return ppt()
        if self is LlamaParseSupportedFileExtensions.PPTX:
            return pptx()
        if self is LlamaParseSupportedFileExtensions.POT:
            return pot()
        if self is LlamaParseSupportedFileExtensions.PPTM:
            return pptm()
        if self is LlamaParseSupportedFileExtensions.POTX:
            return potx()
        if self is LlamaParseSupportedFileExtensions.POTM:
            return potm()
        if self is LlamaParseSupportedFileExtensions.KEY:
            return key()
        if self is LlamaParseSupportedFileExtensions.ODP:
            return odp()
        if self is LlamaParseSupportedFileExtensions.ODG:
            return odg()
        if self is LlamaParseSupportedFileExtensions.OTP:
            return otp()
        if self is LlamaParseSupportedFileExtensions.FOPD:
            return fopd()
        if self is LlamaParseSupportedFileExtensions.SXI:
            return sxi()
        if self is LlamaParseSupportedFileExtensions.STI:
            return sti()
        if self is LlamaParseSupportedFileExtensions.EPUB:
            return epub()
