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

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.foundation.numerics
import winsdk.windows.storage.streams
import winsdk.windows.ui
import winsdk.windows.ui.core
import winsdk.windows.ui.input

class HandwritingLineHeight(enum.IntEnum):
    SMALL = 0
    MEDIUM = 1
    LARGE = 2

class InkDrawingAttributesKind(enum.IntEnum):
    DEFAULT = 0
    PENCIL = 1

class InkHighContrastAdjustment(enum.IntEnum):
    USE_SYSTEM_COLORS_WHEN_NECESSARY = 0
    USE_SYSTEM_COLORS = 1
    USE_ORIGINAL_COLORS = 2

class InkInputProcessingMode(enum.IntEnum):
    NONE = 0
    INKING = 1
    ERASING = 2

class InkInputRightDragAction(enum.IntEnum):
    LEAVE_UNPROCESSED = 0
    ALLOW_PROCESSING = 1

class InkManipulationMode(enum.IntEnum):
    INKING = 0
    ERASING = 1
    SELECTING = 2

class InkPersistenceFormat(enum.IntEnum):
    GIF_WITH_EMBEDDED_ISF = 0
    ISF = 1

class InkPresenterPredefinedConfiguration(enum.IntEnum):
    SIMPLE_SINGLE_POINTER = 0
    SIMPLE_MULTIPLE_POINTER = 1

class InkPresenterStencilKind(enum.IntEnum):
    OTHER = 0
    RULER = 1
    PROTRACTOR = 2

class InkRecognitionTarget(enum.IntEnum):
    ALL = 0
    SELECTED = 1
    RECENT = 2

class PenHandedness(enum.IntEnum):
    RIGHT = 0
    LEFT = 1

class PenTipShape(enum.IntEnum):
    CIRCLE = 0
    RECTANGLE = 1

Self = typing.TypeVar('Self')

class InkDrawingAttributes(winsdk.system.Object):
    size: winsdk.windows.foundation.Size
    pen_tip: PenTipShape
    ignore_pressure: winsdk.system.Boolean
    fit_to_curve: winsdk.system.Boolean
    color: winsdk.windows.ui.Color
    pen_tip_transform: winsdk.windows.foundation.numerics.Matrix3x2
    draw_as_highlighter: winsdk.system.Boolean
    kind: InkDrawingAttributesKind
    pencil_properties: typing.Optional[InkDrawingAttributesPencilProperties]
    ignore_tilt: winsdk.system.Boolean
    modeler_attributes: typing.Optional[InkModelerAttributes]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkDrawingAttributes: ...
    def __new__(cls: typing.Type[InkDrawingAttributes]) -> InkDrawingAttributes:...
    @staticmethod
    def create_for_pencil() -> typing.Optional[InkDrawingAttributes]: ...

class InkDrawingAttributesPencilProperties(winsdk.system.Object):
    opacity: winsdk.system.Double
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkDrawingAttributesPencilProperties: ...

class InkInputConfiguration(winsdk.system.Object):
    is_primary_barrel_button_input_enabled: winsdk.system.Boolean
    is_eraser_input_enabled: winsdk.system.Boolean
    is_pen_haptic_feedback_enabled: winsdk.system.Boolean
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkInputConfiguration: ...

class InkInputProcessingConfiguration(winsdk.system.Object):
    right_drag_action: InkInputRightDragAction
    mode: InkInputProcessingMode
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkInputProcessingConfiguration: ...

class InkManager(winsdk.system.Object):
    mode: InkManipulationMode
    bounding_rect: winsdk.windows.foundation.Rect
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkManager: ...
    def __new__(cls: typing.Type[InkManager]) -> InkManager:...
    def add_stroke(self, stroke: typing.Optional[InkStroke], /) -> None: ...
    def can_paste_from_clipboard(self) -> winsdk.system.Boolean: ...
    def copy_selected_to_clipboard(self) -> None: ...
    def delete_selected(self) -> winsdk.windows.foundation.Rect: ...
    def get_recognition_results(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkRecognitionResult]]: ...
    def get_recognizers(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkRecognizer]]: ...
    def get_strokes(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkStroke]]: ...
    def load_async(self, input_stream: typing.Optional[winsdk.windows.storage.streams.IInputStream], /) -> winsdk.windows.foundation.IAsyncActionWithProgress[winsdk.system.UInt64]: ...
    def move_selected(self, translation: winsdk.windows.foundation.Point, /) -> winsdk.windows.foundation.Rect: ...
    def paste_from_clipboard(self, position: winsdk.windows.foundation.Point, /) -> winsdk.windows.foundation.Rect: ...
    def process_pointer_down(self, pointer_point: typing.Optional[winsdk.windows.ui.input.PointerPoint], /) -> None: ...
    def process_pointer_up(self, pointer_point: typing.Optional[winsdk.windows.ui.input.PointerPoint], /) -> winsdk.windows.foundation.Rect: ...
    def process_pointer_update(self, pointer_point: typing.Optional[winsdk.windows.ui.input.PointerPoint], /) -> typing.Optional[winsdk.system.Object]: ...
    @typing.overload
    def recognize_async(self, recognition_target: InkRecognitionTarget, /) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[InkRecognitionResult]]: ...
    @typing.overload
    def recognize_async(self, stroke_collection: typing.Optional[InkStrokeContainer], recognition_target: InkRecognitionTarget, /) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[InkRecognitionResult]]: ...
    def save_async(self, output_stream: typing.Optional[winsdk.windows.storage.streams.IOutputStream], /) -> winsdk.windows.foundation.IAsyncOperationWithProgress[winsdk.system.UInt32, winsdk.system.UInt32]: ...
    def select_with_line(self, from_: winsdk.windows.foundation.Point, to: winsdk.windows.foundation.Point, /) -> winsdk.windows.foundation.Rect: ...
    def select_with_poly_line(self, polyline: typing.Iterable[winsdk.windows.foundation.Point], /) -> winsdk.windows.foundation.Rect: ...
    def set_default_drawing_attributes(self, drawing_attributes: typing.Optional[InkDrawingAttributes], /) -> None: ...
    def set_default_recognizer(self, recognizer: typing.Optional[InkRecognizer], /) -> None: ...
    def update_recognition_results(self, recognition_results: winsdk.windows.foundation.collections.IVectorView[InkRecognitionResult], /) -> None: ...

class InkModelerAttributes(winsdk.system.Object):
    scaling_factor: winsdk.system.Single
    prediction_time: datetime.timedelta
    use_velocity_based_pressure: winsdk.system.Boolean
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkModelerAttributes: ...

class InkPoint(winsdk.system.Object):
    position: winsdk.windows.foundation.Point
    pressure: winsdk.system.Single
    tilt_x: winsdk.system.Single
    tilt_y: winsdk.system.Single
    timestamp: winsdk.system.UInt64
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkPoint: ...
    @typing.overload
    def __new__(cls: typing.Type[InkPoint], position: winsdk.windows.foundation.Point, pressure: winsdk.system.Single, tilt_x: winsdk.system.Single, tilt_y: winsdk.system.Single, timestamp: winsdk.system.UInt64) -> InkPoint:...
    @typing.overload
    def __new__(cls: typing.Type[InkPoint], position: winsdk.windows.foundation.Point, pressure: winsdk.system.Single) -> InkPoint:...

class InkPresenter(winsdk.system.Object):
    stroke_container: typing.Optional[InkStrokeContainer]
    is_input_enabled: winsdk.system.Boolean
    input_device_types: winsdk.windows.ui.core.CoreInputDeviceTypes
    input_processing_configuration: typing.Optional[InkInputProcessingConfiguration]
    stroke_input: typing.Optional[InkStrokeInput]
    unprocessed_input: typing.Optional[InkUnprocessedInput]
    high_contrast_adjustment: InkHighContrastAdjustment
    input_configuration: typing.Optional[InkInputConfiguration]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkPresenter: ...
    def activate_custom_drying(self) -> typing.Optional[InkSynchronizer]: ...
    def copy_default_drawing_attributes(self) -> typing.Optional[InkDrawingAttributes]: ...
    def set_predefined_configuration(self, value: InkPresenterPredefinedConfiguration, /) -> None: ...
    def update_default_drawing_attributes(self, value: typing.Optional[InkDrawingAttributes], /) -> None: ...
    def add_strokes_collected(self, handler: winsdk.windows.foundation.TypedEventHandler[InkPresenter, InkStrokesCollectedEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_strokes_collected(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_strokes_erased(self, handler: winsdk.windows.foundation.TypedEventHandler[InkPresenter, InkStrokesErasedEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_strokes_erased(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

class InkPresenterProtractor(winsdk.system.Object):
    radius: winsdk.system.Double
    is_resizable: winsdk.system.Boolean
    is_center_marker_visible: winsdk.system.Boolean
    is_angle_readout_visible: winsdk.system.Boolean
    are_tick_marks_visible: winsdk.system.Boolean
    are_rays_visible: winsdk.system.Boolean
    accent_color: winsdk.windows.ui.Color
    transform: winsdk.windows.foundation.numerics.Matrix3x2
    is_visible: winsdk.system.Boolean
    foreground_color: winsdk.windows.ui.Color
    background_color: winsdk.windows.ui.Color
    kind: InkPresenterStencilKind
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkPresenterProtractor: ...
    def __new__(cls: typing.Type[InkPresenterProtractor], ink_presenter: typing.Optional[InkPresenter]) -> InkPresenterProtractor:...

class InkPresenterRuler(winsdk.system.Object):
    width: winsdk.system.Double
    length: winsdk.system.Double
    is_compass_visible: winsdk.system.Boolean
    are_tick_marks_visible: winsdk.system.Boolean
    transform: winsdk.windows.foundation.numerics.Matrix3x2
    is_visible: winsdk.system.Boolean
    foreground_color: winsdk.windows.ui.Color
    background_color: winsdk.windows.ui.Color
    kind: InkPresenterStencilKind
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkPresenterRuler: ...
    def __new__(cls: typing.Type[InkPresenterRuler], ink_presenter: typing.Optional[InkPresenter]) -> InkPresenterRuler:...

class InkRecognitionResult(winsdk.system.Object):
    bounding_rect: winsdk.windows.foundation.Rect
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkRecognitionResult: ...
    def get_strokes(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkStroke]]: ...
    def get_text_candidates(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[str]]: ...

class InkRecognizer(winsdk.system.Object):
    name: str
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkRecognizer: ...

class InkRecognizerContainer(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkRecognizerContainer: ...
    def __new__(cls: typing.Type[InkRecognizerContainer]) -> InkRecognizerContainer:...
    def get_recognizers(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkRecognizer]]: ...
    def recognize_async(self, stroke_collection: typing.Optional[InkStrokeContainer], recognition_target: InkRecognitionTarget, /) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[InkRecognitionResult]]: ...
    def set_default_recognizer(self, recognizer: typing.Optional[InkRecognizer], /) -> None: ...

class InkStroke(winsdk.system.Object):
    selected: winsdk.system.Boolean
    drawing_attributes: typing.Optional[InkDrawingAttributes]
    bounding_rect: winsdk.windows.foundation.Rect
    recognized: winsdk.system.Boolean
    point_transform: winsdk.windows.foundation.numerics.Matrix3x2
    stroke_started_time: typing.Optional[typing.Optional[datetime.datetime]]
    stroke_duration: typing.Optional[typing.Optional[datetime.timedelta]]
    id: winsdk.system.UInt32
    pointer_id: winsdk.system.UInt32
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkStroke: ...
    def clone(self) -> typing.Optional[InkStroke]: ...
    def get_ink_points(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkPoint]]: ...
    def get_rendering_segments(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkStrokeRenderingSegment]]: ...

class InkStrokeBuilder(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkStrokeBuilder: ...
    def __new__(cls: typing.Type[InkStrokeBuilder]) -> InkStrokeBuilder:...
    def append_to_stroke(self, pointer_point: typing.Optional[winsdk.windows.ui.input.PointerPoint], /) -> typing.Optional[winsdk.windows.ui.input.PointerPoint]: ...
    def begin_stroke(self, pointer_point: typing.Optional[winsdk.windows.ui.input.PointerPoint], /) -> None: ...
    def create_stroke(self, points: typing.Iterable[winsdk.windows.foundation.Point], /) -> typing.Optional[InkStroke]: ...
    @typing.overload
    def create_stroke_from_ink_points(self, ink_points: typing.Iterable[InkPoint], transform: winsdk.windows.foundation.numerics.Matrix3x2, /) -> typing.Optional[InkStroke]: ...
    @typing.overload
    def create_stroke_from_ink_points(self, ink_points: typing.Iterable[InkPoint], transform: winsdk.windows.foundation.numerics.Matrix3x2, stroke_started_time: typing.Optional[datetime.datetime], stroke_duration: typing.Optional[datetime.timedelta], /) -> typing.Optional[InkStroke]: ...
    def end_stroke(self, pointer_point: typing.Optional[winsdk.windows.ui.input.PointerPoint], /) -> typing.Optional[InkStroke]: ...
    def set_default_drawing_attributes(self, drawing_attributes: typing.Optional[InkDrawingAttributes], /) -> None: ...

class InkStrokeContainer(winsdk.system.Object):
    bounding_rect: winsdk.windows.foundation.Rect
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkStrokeContainer: ...
    def __new__(cls: typing.Type[InkStrokeContainer]) -> InkStrokeContainer:...
    def add_stroke(self, stroke: typing.Optional[InkStroke], /) -> None: ...
    def add_strokes(self, strokes: typing.Iterable[InkStroke], /) -> None: ...
    def can_paste_from_clipboard(self) -> winsdk.system.Boolean: ...
    def clear(self) -> None: ...
    def copy_selected_to_clipboard(self) -> None: ...
    def delete_selected(self) -> winsdk.windows.foundation.Rect: ...
    def get_recognition_results(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkRecognitionResult]]: ...
    def get_stroke_by_id(self, id: winsdk.system.UInt32, /) -> typing.Optional[InkStroke]: ...
    def get_strokes(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkStroke]]: ...
    def load_async(self, input_stream: typing.Optional[winsdk.windows.storage.streams.IInputStream], /) -> winsdk.windows.foundation.IAsyncActionWithProgress[winsdk.system.UInt64]: ...
    def move_selected(self, translation: winsdk.windows.foundation.Point, /) -> winsdk.windows.foundation.Rect: ...
    def paste_from_clipboard(self, position: winsdk.windows.foundation.Point, /) -> winsdk.windows.foundation.Rect: ...
    @typing.overload
    def save_async(self, output_stream: typing.Optional[winsdk.windows.storage.streams.IOutputStream], /) -> winsdk.windows.foundation.IAsyncOperationWithProgress[winsdk.system.UInt32, winsdk.system.UInt32]: ...
    @typing.overload
    def save_async(self, output_stream: typing.Optional[winsdk.windows.storage.streams.IOutputStream], ink_persistence_format: InkPersistenceFormat, /) -> winsdk.windows.foundation.IAsyncOperationWithProgress[winsdk.system.UInt32, winsdk.system.UInt32]: ...
    def select_with_line(self, from_: winsdk.windows.foundation.Point, to: winsdk.windows.foundation.Point, /) -> winsdk.windows.foundation.Rect: ...
    def select_with_poly_line(self, polyline: typing.Iterable[winsdk.windows.foundation.Point], /) -> winsdk.windows.foundation.Rect: ...
    def update_recognition_results(self, recognition_results: winsdk.windows.foundation.collections.IVectorView[InkRecognitionResult], /) -> None: ...

class InkStrokeInput(winsdk.system.Object):
    ink_presenter: typing.Optional[InkPresenter]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkStrokeInput: ...
    def add_stroke_canceled(self, handler: winsdk.windows.foundation.TypedEventHandler[InkStrokeInput, winsdk.windows.ui.core.PointerEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_stroke_canceled(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_stroke_continued(self, handler: winsdk.windows.foundation.TypedEventHandler[InkStrokeInput, winsdk.windows.ui.core.PointerEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_stroke_continued(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_stroke_ended(self, handler: winsdk.windows.foundation.TypedEventHandler[InkStrokeInput, winsdk.windows.ui.core.PointerEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_stroke_ended(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_stroke_started(self, handler: winsdk.windows.foundation.TypedEventHandler[InkStrokeInput, winsdk.windows.ui.core.PointerEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_stroke_started(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

class InkStrokeRenderingSegment(winsdk.system.Object):
    bezier_control_point1: winsdk.windows.foundation.Point
    bezier_control_point2: winsdk.windows.foundation.Point
    position: winsdk.windows.foundation.Point
    pressure: winsdk.system.Single
    tilt_x: winsdk.system.Single
    tilt_y: winsdk.system.Single
    twist: winsdk.system.Single
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkStrokeRenderingSegment: ...

class InkStrokesCollectedEventArgs(winsdk.system.Object):
    strokes: typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkStroke]]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkStrokesCollectedEventArgs: ...

class InkStrokesErasedEventArgs(winsdk.system.Object):
    strokes: typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkStroke]]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkStrokesErasedEventArgs: ...

class InkSynchronizer(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkSynchronizer: ...
    def begin_dry(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkStroke]]: ...
    def end_dry(self) -> None: ...

class InkUnprocessedInput(winsdk.system.Object):
    ink_presenter: typing.Optional[InkPresenter]
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> InkUnprocessedInput: ...
    def add_pointer_entered(self, handler: winsdk.windows.foundation.TypedEventHandler[InkUnprocessedInput, winsdk.windows.ui.core.PointerEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_pointer_entered(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_pointer_exited(self, handler: winsdk.windows.foundation.TypedEventHandler[InkUnprocessedInput, winsdk.windows.ui.core.PointerEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_pointer_exited(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_pointer_hovered(self, handler: winsdk.windows.foundation.TypedEventHandler[InkUnprocessedInput, winsdk.windows.ui.core.PointerEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_pointer_hovered(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_pointer_lost(self, handler: winsdk.windows.foundation.TypedEventHandler[InkUnprocessedInput, winsdk.windows.ui.core.PointerEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_pointer_lost(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_pointer_moved(self, handler: winsdk.windows.foundation.TypedEventHandler[InkUnprocessedInput, winsdk.windows.ui.core.PointerEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_pointer_moved(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_pointer_pressed(self, handler: winsdk.windows.foundation.TypedEventHandler[InkUnprocessedInput, winsdk.windows.ui.core.PointerEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_pointer_pressed(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...
    def add_pointer_released(self, handler: winsdk.windows.foundation.TypedEventHandler[InkUnprocessedInput, winsdk.windows.ui.core.PointerEventArgs], /) -> winsdk.windows.foundation.EventRegistrationToken: ...
    def remove_pointer_released(self, cookie: winsdk.windows.foundation.EventRegistrationToken, /) -> None: ...

class PenAndInkSettings(winsdk.system.Object):
    font_family_name: str
    handwriting_line_height: HandwritingLineHeight
    is_handwriting_directly_into_text_field_enabled: winsdk.system.Boolean
    is_touch_handwriting_enabled: winsdk.system.Boolean
    pen_handedness: PenHandedness
    user_consents_to_handwriting_telemetry_collection: winsdk.system.Boolean
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> PenAndInkSettings: ...
    @staticmethod
    def get_default() -> typing.Optional[PenAndInkSettings]: ...
    def set_pen_handedness(self, value: PenHandedness, /) -> None: ...

class IInkPointFactory(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> IInkPointFactory: ...
    def create_ink_point(self, position: winsdk.windows.foundation.Point, pressure: winsdk.system.Single, /) -> typing.Optional[InkPoint]: ...

class IInkPresenterRulerFactory(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> IInkPresenterRulerFactory: ...
    def create(self, ink_presenter: typing.Optional[InkPresenter], /) -> typing.Optional[InkPresenterRuler]: ...

class IInkPresenterStencil(winsdk.system.Object):
    background_color: winsdk.windows.ui.Color
    foreground_color: winsdk.windows.ui.Color
    is_visible: winsdk.system.Boolean
    kind: InkPresenterStencilKind
    transform: winsdk.windows.foundation.numerics.Matrix3x2
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> IInkPresenterStencil: ...

class IInkRecognizerContainer(winsdk.system.Object):
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> IInkRecognizerContainer: ...
    def get_recognizers(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkRecognizer]]: ...
    def recognize_async(self, stroke_collection: typing.Optional[InkStrokeContainer], recognition_target: InkRecognitionTarget, /) -> winsdk.windows.foundation.IAsyncOperation[winsdk.windows.foundation.collections.IVectorView[InkRecognitionResult]]: ...
    def set_default_recognizer(self, recognizer: typing.Optional[InkRecognizer], /) -> None: ...

class IInkStrokeContainer(winsdk.system.Object):
    bounding_rect: winsdk.windows.foundation.Rect
    @staticmethod
    def _from(obj: winsdk.system.Object, /) -> IInkStrokeContainer: ...
    def add_stroke(self, stroke: typing.Optional[InkStroke], /) -> None: ...
    def can_paste_from_clipboard(self) -> winsdk.system.Boolean: ...
    def copy_selected_to_clipboard(self) -> None: ...
    def delete_selected(self) -> winsdk.windows.foundation.Rect: ...
    def get_recognition_results(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkRecognitionResult]]: ...
    def get_strokes(self) -> typing.Optional[winsdk.windows.foundation.collections.IVectorView[InkStroke]]: ...
    def load_async(self, input_stream: typing.Optional[winsdk.windows.storage.streams.IInputStream], /) -> winsdk.windows.foundation.IAsyncActionWithProgress[winsdk.system.UInt64]: ...
    def move_selected(self, translation: winsdk.windows.foundation.Point, /) -> winsdk.windows.foundation.Rect: ...
    def paste_from_clipboard(self, position: winsdk.windows.foundation.Point, /) -> winsdk.windows.foundation.Rect: ...
    def save_async(self, output_stream: typing.Optional[winsdk.windows.storage.streams.IOutputStream], /) -> winsdk.windows.foundation.IAsyncOperationWithProgress[winsdk.system.UInt32, winsdk.system.UInt32]: ...
    def select_with_line(self, from_: winsdk.windows.foundation.Point, to: winsdk.windows.foundation.Point, /) -> winsdk.windows.foundation.Rect: ...
    def select_with_poly_line(self, polyline: typing.Iterable[winsdk.windows.foundation.Point], /) -> winsdk.windows.foundation.Rect: ...
    def update_recognition_results(self, recognition_results: winsdk.windows.foundation.collections.IVectorView[InkRecognitionResult], /) -> None: ...

