# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
This file contains the exact signatures for all functions in module
PySide6.QtPdf, except for defaults which are replaced by "...".
"""

# mypy: disable-error-code="override, overload-overlap"
# Module `PySide6.QtPdf`

import PySide6.QtPdf
import PySide6.QtCore

import enum
import typing
from PySide6.QtCore import Signal
from shiboken6 import Shiboken


class QIntList: ...


class QPdfBookmarkModel(PySide6.QtCore.QAbstractItemModel):

    documentChanged          : typing.ClassVar[Signal] = ... # documentChanged(QPdfDocument*)

    class Role(enum.IntEnum):

        Title                     = 0x100
        Level                     = 0x101
        Page                      = 0x102
        Location                  = 0x103
        Zoom                      = 0x104
        NRoles                    = 0x105


class QPdfDocument(PySide6.QtCore.QObject):

    pageCountChanged         : typing.ClassVar[Signal] = ... # pageCountChanged(int)
    pageModelChanged         : typing.ClassVar[Signal] = ... # pageModelChanged()
    passwordChanged          : typing.ClassVar[Signal] = ... # passwordChanged()
    passwordRequired         : typing.ClassVar[Signal] = ... # passwordRequired()
    statusChanged            : typing.ClassVar[Signal] = ... # statusChanged(QPdfDocument::Status)

    class Error(enum.Enum):

        None_                     = 0x0
        Unknown                   = 0x1
        DataNotYetAvailable       = 0x2
        FileNotFound              = 0x3
        InvalidFileFormat         = 0x4
        IncorrectPassword         = 0x5
        UnsupportedSecurityScheme = 0x6

    class MetaDataField(enum.Enum):

        Title                     = 0x0
        Subject                   = 0x1
        Author                    = 0x2
        Keywords                  = 0x3
        Producer                  = 0x4
        Creator                   = 0x5
        CreationDate              = 0x6
        ModificationDate          = 0x7

    class PageModelRole(enum.Enum):

        Label                     = 0x100
        PointSize                 = 0x101
        NRoles                    = 0x102

    class Status(enum.Enum):

        Null                      = 0x0
        Loading                   = 0x1
        Ready                     = 0x2
        Unloading                 = 0x3
        Error                     = 0x4


class QPdfDocumentRenderOptions(Shiboken.Object):

    class RenderFlag(enum.Flag):

        None_                     = 0x0
        Annotations               = 0x1
        OptimizedForLcd           = 0x2
        Grayscale                 = 0x4
        ForceHalftone             = 0x8
        TextAliased               = 0x10
        ImageAliased              = 0x20
        PathAliased               = 0x40

    class Rotation(enum.Enum):

        None_                     = 0x0
        Clockwise90               = 0x1
        Clockwise180              = 0x2
        Clockwise270              = 0x3


class QPdfLink(Shiboken.Object): ...
    def __repr__(self, /) -> str: ...


class QPdfLinkModel(PySide6.QtCore.QAbstractListModel):

    documentChanged          : typing.ClassVar[Signal] = ... # documentChanged()
    pageChanged              : typing.ClassVar[Signal] = ... # pageChanged(int)

    class Role(enum.Enum):

        Link                      = 0x100
        Rectangle                 = 0x101
        Url                       = 0x102
        Page                      = 0x103
        Location                  = 0x104
        Zoom                      = 0x105
        NRoles                    = 0x106


class QPdfPageNavigator(PySide6.QtCore.QObject):

    backAvailableChanged     : typing.ClassVar[Signal] = ... # backAvailableChanged(bool)
    currentLocationChanged   : typing.ClassVar[Signal] = ... # currentLocationChanged(QPointF)
    currentPageChanged       : typing.ClassVar[Signal] = ... # currentPageChanged(int)
    currentZoomChanged       : typing.ClassVar[Signal] = ... # currentZoomChanged(double)
    forwardAvailableChanged  : typing.ClassVar[Signal] = ... # forwardAvailableChanged(bool)
    jumped                   : typing.ClassVar[Signal] = ... # jumped(QPdfLink)


class QPdfPageRenderer(PySide6.QtCore.QObject):

    documentChanged          : typing.ClassVar[Signal] = ... # documentChanged(QPdfDocument*)
    pageRendered             : typing.ClassVar[Signal] = ... # pageRendered(int,QSize,QImage,QPdfDocumentRenderOptions,qulonglong)
    renderModeChanged        : typing.ClassVar[Signal] = ... # renderModeChanged(QPdfPageRenderer::RenderMode)

    class RenderMode(enum.Enum):

        MultiThreaded             = 0x0
        SingleThreaded            = 0x1


class QPdfSearchModel(PySide6.QtCore.QAbstractListModel):

    countChanged             : typing.ClassVar[Signal] = ... # countChanged()
    documentChanged          : typing.ClassVar[Signal] = ... # documentChanged()
    searchStringChanged      : typing.ClassVar[Signal] = ... # searchStringChanged()

    class Role(enum.Enum):

        Page                      = 0x100
        IndexOnPage               = 0x101
        Location                  = 0x102
        ContextBefore             = 0x103
        ContextAfter              = 0x104
        NRoles                    = 0x105


class QPdfSelection(Shiboken.Object): ...


# eof
