from __future__ import annotations
from typing import Any, Protocol, runtime_checkable
from com.sun.star.beans import XPropertySet
from com.sun.star.sdb import DataAccessDescriptor
from com.sun.star.task import XJob
from com.sun.star.text import XMailMergeBroadcaster
from com.sun.star.util import XCancellable

@runtime_checkable
class MailMerge(XJob, XCancellable, XPropertySet, XMailMergeBroadcaster, DataAccessDescriptor, Protocol):
    DataSourceName: str
    CommandType: int
    Command: str
    ResultSet: XResultSet
    ActiveConnection: XConnection
    Selection: list[Any]
    EscapeProcessing: bool
    Filter: str
    DocumentURL: str
    Model: XModel
    OutputType: int
    SinglePrintJobs: bool
    OutputURL: str
    FileNameFromColumn: bool
    FileNamePrefix: str
    OutServerPassword: str
    InServerPassword: str
    Subject: str
    AddressFromColumn: str
    SendAsHTML: bool
    SendAsAttachment: bool
    MailBody: str
    AttachmentName: str
    AttachmentFilter: str
    CopiesTo: list[str]
    BlindCopiesTo: list[str]
    SaveAsSingleFile: bool
    SaveFilter: str
    PrintOptions: list[PropertyValue]
