from types import *
from . import pdfmetrics as pdfmetrics, pdfutils as pdfutils
from .pdfgeom import bezierArc as bezierArc
from .pdfutils import LINEEND as LINEEND
from _typeshed import Incomplete
from math import ceil as ceil, cos as cos, pi as pi, sin as sin

StandardEnglishFonts: Incomplete
PDFError: str
AFMDIR: str
A4: Incomplete

class PDFDocument:
    objects: Incomplete
    objectPositions: Incomplete
    fonts: Incomplete
    fontMapping: Incomplete
    pages: Incomplete
    pagepositions: Incomplete
    PageCol: Incomplete
    fontdict: Incomplete
    info: Incomplete
    infopos: Incomplete
    def __init__(self) -> None: ...
    def add(self, key, obj): ...
    def getPosition(self, key): ...
    def setTitle(self, title) -> None: ...
    def setAuthor(self, author) -> None: ...
    def setSubject(self, subject) -> None: ...
    startxref: Incomplete
    def printXref(self) -> None: ...
    def writeXref(self, f) -> None: ...
    def printTrailer(self) -> None: ...
    def writeTrailer(self, f) -> None: ...
    def SaveToFile(self, filename) -> None: ...
    xref: Incomplete
    def SaveToFileObject(self, fileobj) -> None: ...
    def printPDF(self) -> None: ...
    def addPage(self, page) -> None: ...
    def hasFont(self, psfontname): ...
    def getInternalFontName(self, psfontname): ...
    def getAvailableFonts(self): ...

class OutputGrabber:
    oldoutput: Incomplete
    closed: int
    data: Incomplete
    def __init__(self) -> None: ...
    def write(self, x) -> None: ...
    def getData(self): ...
    def close(self) -> None: ...
    def __del__(self) -> None: ...

def testOutputGrabber() -> None: ...

class PDFObject:
    def save(self, file) -> None: ...
    def printPDF(self) -> None: ...

class PDFLiteral(PDFObject):
    text: Incomplete
    def __init__(self, text) -> None: ...
    def save(self, file) -> None: ...

class PDFCatalog(PDFObject):
    template: Incomplete
    def __init__(self) -> None: ...
    def save(self, file) -> None: ...

class PDFInfo(PDFObject):
    title: str
    author: str
    subject: str
    datestr: Incomplete
    def __init__(self) -> None: ...
    def save(self, file) -> None: ...

class PDFOutline(PDFObject):
    template: Incomplete
    def __init__(self) -> None: ...
    def save(self, file) -> None: ...

class PDFPageCollection(PDFObject):
    PageList: Incomplete
    def __init__(self) -> None: ...
    def save(self, file) -> None: ...

class PDFPage(PDFObject):
    drawables: Incomplete
    pagewidth: int
    pageheight: int
    stream: Incomplete
    hasImages: int
    pageTransitionString: str
    template: Incomplete
    def __init__(self) -> None: ...
    def setCompression(self, onoff: int = ...) -> None: ...
    def save(self, file) -> None: ...
    def clear(self) -> None: ...
    def setStream(self, data) -> None: ...

TestStream: str

class PDFStream(PDFObject):
    data: Incomplete
    compression: int
    def __init__(self) -> None: ...
    def setStream(self, data) -> None: ...
    def save(self, file) -> None: ...

class PDFImage(PDFObject):
    def save(self, file) -> None: ...

class PDFType1Font(PDFObject):
    fontname: Incomplete
    keyname: Incomplete
    template: Incomplete
    def __init__(self, key, font) -> None: ...
    def save(self, file) -> None: ...

def MakeType1Fonts(): ...
def MakeFontDictionary(startpos, count): ...
