from __future__ import annotations
from typing import Any, Protocol, runtime_checkable

@runtime_checkable
class ParagraphProperties(Protocol):
    ParaAdjust: ParagraphAdjust
    ParaLineSpacing: LineSpacing
    ParaBackColor: Color
    ParaBackTransparent: bool
    ParaBackGraphicURL: str
    ParaBackGraphicFilter: str
    ParaBackGraphicLocation: GraphicLocation
    ParaLastLineAdjust: int
    ParaExpandSingleWord: bool
    ParaLeftMargin: int
    ParaRightMargin: int
    ParaTopMargin: int
    ParaBottomMargin: int
    ParaContextMargin: bool
    ParaInteropGrabBag: list[PropertyValue]
    ParaLineNumberCount: bool
    ParaLineNumberStartValue: int
    PageDescName: str
    PageNumberOffset: int
    ParaRegisterModeActive: bool
    ParaTabStops: list[TabStop]
    ParaStyleName: str
    PageStyleName: str
    DropCapFormat: DropCapFormat
    DropCapWholeWord: bool
    ParaKeepTogether: bool
    ParaSplit: bool
    NumberingLevel: int
    NumberingRules: XIndexReplace
    NumberingStartValue: int
    ParaIsNumberingRestart: bool
    NumberingStyleName: str
    ParaOrphans: int
    ParaWidows: int
    ParaShadowFormat: ShadowFormat
    LeftBorder: BorderLine
    RightBorder: BorderLine
    TopBorder: BorderLine
    BottomBorder: BorderLine
    BorderDistance: int
    LeftBorderDistance: int
    RightBorderDistance: int
    TopBorderDistance: int
    BottomBorderDistance: int
    BreakType: BreakType
    DropCapCharStyleName: str
    ParaFirstLineIndent: int
    ParaIsAutoFirstLineIndent: bool
    ParaIsHyphenation: bool
    ParaHyphenationMaxHyphens: int
    ParaHyphenationMaxLeadingChars: int
    ParaHyphenationMaxTrailingChars: int
    ParaVertAlignment: int
    ParaUserDefinedAttributes: XNameContainer
    NumberingIsNumber: bool
    ParaIsConnectBorder: bool
    ListId: str
    OutlineLevel: int
    ParaBackGraphic: XGraphic
    ContinueingPreviousSubTree: bool
    ListLabelString: str
    ParaHyphenationNoCaps: bool
    ParaHyphenationNoLastWord: bool
    ParaHyphenationMinWordLength: int
    ParaHyphenationZone: int
    SortedTextId: int
    ParaHyphenationKeep: bool
    ParaHyphenationKeepType: int
    ParaHyphenationCompoundMinLeadingChars: int
    ParaHyphenationKeepLine: bool
    ParaHyphenationZoneAlways: int
    ParaHyphenationZoneColumn: int
    ParaHyphenationZonePage: int
    ParaHyphenationZoneSpread: int
    ParaWordSpacing: int
    ParaWordSpacingMinimum: int
    ParaWordSpacingMaximum: int
    ParaLetterSpacingMinimum: int
    ParaLetterSpacingMaximum: int
    ParaScaleWidthMinimum: int
    ParaScaleWidthMaximum: int
