# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.9

import enum
import datetime
import sys
import types
import typing

import winsdk.system
import winsdk.windows.foundation
import winsdk.windows.foundation.collections
import winsdk.windows.ui.input.inking

class InkAnalysisDrawingKind(enum.IntEnum):
    DRAWING = 0
    CIRCLE = 1
    ELLIPSE = 2
    TRIANGLE = 3
    ISOSCELES_TRIANGLE = 4
    EQUILATERAL_TRIANGLE = 5
    RIGHT_TRIANGLE = 6
    QUADRILATERAL = 7
    RECTANGLE = 8
    SQUARE = 9
    DIAMOND = 10
    TRAPEZOID = 11
    PARALLELOGRAM = 12
    PENTAGON = 13
    HEXAGON = 14

class InkAnalysisNodeKind(enum.IntEnum):
    UNCLASSIFIED_INK = 0
    ROOT = 1
    WRITING_REGION = 2
    PARAGRAPH = 3
    LINE = 4
    INK_WORD = 5
    INK_BULLET = 6
    INK_DRAWING = 7
    LIST_ITEM = 8

class InkAnalysisStatus(enum.IntEnum):
    UPDATED = 0
    UNCHANGED = 1

class InkAnalysisStrokeKind(enum.IntEnum):
    AUTO = 0
    WRITING = 1
    DRAWING = 2

Self = typing.TypeVar('Self')

class InkAnalysisInkBullet(winsdk.system.Object):
    recognized_text: str
    bounding_rect: winsdk.windows.foundation.Rect
    children: typing.Optional[winsdk.windows.foundation.collections.IVectorView[IInkAnalysisNode]]
    id: winsdk.system.UInt32
    kind: InkAnalysisNodeKind
    parent: typing.Optional[IInkAnalysisNode]
    rotated_bounding_rect: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.foundation.Point]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> InkAnalysisInkBullet: ...
    def get_stroke_ids(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.system.UInt32]]: ...

class InkAnalysisInkDrawing(winsdk.system.Object):
    center: winsdk.windows.foundation.Point
    drawing_kind: InkAnalysisDrawingKind
    points: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.foundation.Point]]
    bounding_rect: winsdk.windows.foundation.Rect
    children: typing.Optional[winsdk.windows.foundation.collections.IVectorView[IInkAnalysisNode]]
    id: winsdk.system.UInt32
    kind: InkAnalysisNodeKind
    parent: typing.Optional[IInkAnalysisNode]
    rotated_bounding_rect: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.foundation.Point]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> InkAnalysisInkDrawing: ...
    def get_stroke_ids(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.system.UInt32]]: ...

class InkAnalysisInkWord(winsdk.system.Object):
    recognized_text: str
    text_alternates: typing.Optional[winsdk.windows.foundation.collections.IVectorView[str]]
    bounding_rect: winsdk.windows.foundation.Rect
    children: typing.Optional[winsdk.windows.foundation.collections.IVectorView[IInkAnalysisNode]]
    id: winsdk.system.UInt32
    kind: InkAnalysisNodeKind
    parent: typing.Optional[IInkAnalysisNode]
    rotated_bounding_rect: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.foundation.Point]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> InkAnalysisInkWord: ...
    def get_stroke_ids(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.system.UInt32]]: ...

class InkAnalysisLine(winsdk.system.Object):
    indent_level: winsdk.system.Int32
    recognized_text: str
    bounding_rect: winsdk.windows.foundation.Rect
    children: typing.Optional[winsdk.windows.foundation.collections.IVectorView[IInkAnalysisNode]]
    id: winsdk.system.UInt32
    kind: InkAnalysisNodeKind
    parent: typing.Optional[IInkAnalysisNode]
    rotated_bounding_rect: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.foundation.Point]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> InkAnalysisLine: ...
    def get_stroke_ids(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.system.UInt32]]: ...

class InkAnalysisListItem(winsdk.system.Object):
    recognized_text: str
    bounding_rect: winsdk.windows.foundation.Rect
    children: typing.Optional[winsdk.windows.foundation.collections.IVectorView[IInkAnalysisNode]]
    id: winsdk.system.UInt32
    kind: InkAnalysisNodeKind
    parent: typing.Optional[IInkAnalysisNode]
    rotated_bounding_rect: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.foundation.Point]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> InkAnalysisListItem: ...
    def get_stroke_ids(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.system.UInt32]]: ...

class InkAnalysisNode(winsdk.system.Object):
    bounding_rect: winsdk.windows.foundation.Rect
    children: typing.Optional[winsdk.windows.foundation.collections.IVectorView[IInkAnalysisNode]]
    id: winsdk.system.UInt32
    kind: InkAnalysisNodeKind
    parent: typing.Optional[IInkAnalysisNode]
    rotated_bounding_rect: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.foundation.Point]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> InkAnalysisNode: ...
    def get_stroke_ids(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.system.UInt32]]: ...

class InkAnalysisParagraph(winsdk.system.Object):
    bounding_rect: winsdk.windows.foundation.Rect
    children: typing.Optional[winsdk.windows.foundation.collections.IVectorView[IInkAnalysisNode]]
    id: winsdk.system.UInt32
    kind: InkAnalysisNodeKind
    parent: typing.Optional[IInkAnalysisNode]
    rotated_bounding_rect: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.foundation.Point]]
    recognized_text: str
    @staticmethod
    def _from(obj: winsdk.system.Object) -> InkAnalysisParagraph: ...
    def get_stroke_ids(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.system.UInt32]]: ...

class InkAnalysisResult(winsdk.system.Object):
    status: InkAnalysisStatus
    @staticmethod
    def _from(obj: winsdk.system.Object) -> InkAnalysisResult: ...

class InkAnalysisRoot(winsdk.system.Object):
    bounding_rect: winsdk.windows.foundation.Rect
    children: typing.Optional[winsdk.windows.foundation.collections.IVectorView[IInkAnalysisNode]]
    id: winsdk.system.UInt32
    kind: InkAnalysisNodeKind
    parent: typing.Optional[IInkAnalysisNode]
    rotated_bounding_rect: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.foundation.Point]]
    recognized_text: str
    @staticmethod
    def _from(obj: winsdk.system.Object) -> InkAnalysisRoot: ...
    def find_nodes(self, node_kind: InkAnalysisNodeKind) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[IInkAnalysisNode]]: ...
    def get_stroke_ids(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.system.UInt32]]: ...

class InkAnalysisWritingRegion(winsdk.system.Object):
    bounding_rect: winsdk.windows.foundation.Rect
    children: typing.Optional[winsdk.windows.foundation.collections.IVectorView[IInkAnalysisNode]]
    id: winsdk.system.UInt32
    kind: InkAnalysisNodeKind
    parent: typing.Optional[IInkAnalysisNode]
    rotated_bounding_rect: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.foundation.Point]]
    recognized_text: str
    @staticmethod
    def _from(obj: winsdk.system.Object) -> InkAnalysisWritingRegion: ...
    def get_stroke_ids(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.system.UInt32]]: ...

class InkAnalyzer(winsdk.system.Object):
    analysis_root: typing.Optional[InkAnalysisRoot]
    is_analyzing: winsdk.system.Boolean
    @staticmethod
    def _from(obj: winsdk.system.Object) -> InkAnalyzer: ...
    def __new__(cls: typing.Type[InkAnalyzer]) -> InkAnalyzer:...
    def add_data_for_stroke(self, stroke: typing.Optional[winsdk.windows.ui.input.inking.InkStroke]) -> None: ...
    def add_data_for_strokes(self, strokes: typing.Iterable[winsdk.windows.ui.input.inking.InkStroke]) -> None: ...
    def analyze_async(self) -> winsdk.windows.foundation.IAsyncOperation[InkAnalysisResult]: ...
    def clear_data_for_all_strokes(self) -> None: ...
    def remove_data_for_stroke(self, stroke_id: winsdk.system.UInt32) -> None: ...
    def remove_data_for_strokes(self, stroke_ids: typing.Iterable[winsdk.system.UInt32]) -> None: ...
    def replace_data_for_stroke(self, stroke: typing.Optional[winsdk.windows.ui.input.inking.InkStroke]) -> None: ...
    def set_stroke_data_kind(self, stroke_id: winsdk.system.UInt32, stroke_kind: InkAnalysisStrokeKind) -> None: ...

class IInkAnalysisNode(winsdk.system.Object):
    bounding_rect: winsdk.windows.foundation.Rect
    children: typing.Optional[winsdk.windows.foundation.collections.IVectorView[IInkAnalysisNode]]
    id: winsdk.system.UInt32
    kind: InkAnalysisNodeKind
    parent: typing.Optional[IInkAnalysisNode]
    rotated_bounding_rect: typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.windows.foundation.Point]]
    @staticmethod
    def _from(obj: winsdk.system.Object) -> IInkAnalysisNode: ...
    def get_stroke_ids(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[winsdk.system.UInt32]]: ...

class IInkAnalyzerFactory(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object) -> IInkAnalyzerFactory: ...
    def create_analyzer(self) -> typing.Optional[InkAnalyzer]: ...

