from __future__ import annotations
from typing import Any, Protocol, runtime_checkable
from com.sun.star.beans import XPropertySet
from com.sun.star.table import BorderLine, BorderLine2, CellHoriJustify, CellOrientation, ShadowFormat, TableBorder, TableBorder2

@runtime_checkable
class CellProperties(XPropertySet, Protocol):
    CellStyle: str
    CellBackColor: Color
    IsCellBackgroundTransparent: bool
    HoriJustify: CellHoriJustify
    VertJustify: int
    IsTextWrapped: bool
    ParaIndent: int
    Orientation: CellOrientation
    RotateAngle: int
    RotateReference: int
    AsianVerticalMode: bool
    TableBorder: TableBorder
    TopBorder: BorderLine
    BottomBorder: BorderLine
    LeftBorder: BorderLine
    RightBorder: BorderLine
    NumberFormat: int
    ShadowFormat: ShadowFormat
    CellProtection: CellProtection
    UserDefinedAttributes: XNameContainer
    DiagonalTLBR: BorderLine
    DiagonalBLTR: BorderLine
    ShrinkToFit: bool
    TableBorder2: TableBorder2
    TopBorder2: BorderLine2
    BottomBorder2: BorderLine2
    LeftBorder2: BorderLine2
    RightBorder2: BorderLine2
    DiagonalTLBR2: BorderLine2
    DiagonalBLTR2: BorderLine2
    CellInteropGrabBag: list[PropertyValue]
