import typing
import collections.abc
import typing_extensions
import numpy.typing as npt

def add(execution_context: int | str | None = None, undo: bool | None = None):
    """Add a new time marker

    :type execution_context: int | str | None
    :type undo: bool | None
    """

def camera_bind(execution_context: int | str | None = None, undo: bool | None = None):
    """Bind the selected camera to a marker on the current frame

    :type execution_context: int | str | None
    :type undo: bool | None
    """

def delete(
    execution_context: int | str | None = None,
    undo: bool | None = None,
    /,
    *,
    confirm: bool | None = True,
):
    """Delete selected time marker(s)

    :type execution_context: int | str | None
    :type undo: bool | None
    :param confirm: Confirm, Prompt for confirmation
    :type confirm: bool | None
    """

def duplicate(
    execution_context: int | str | None = None,
    undo: bool | None = None,
    /,
    *,
    frames: int | None = 0,
):
    """Duplicate selected time marker(s)

    :type execution_context: int | str | None
    :type undo: bool | None
    :param frames: Frames
    :type frames: int | None
    """

def make_links_scene(
    execution_context: int | str | None = None,
    undo: bool | None = None,
    /,
    *,
    scene: str | None = "",
):
    """Copy selected markers to another scene

    :type execution_context: int | str | None
    :type undo: bool | None
    :param scene: Scene
    :type scene: str | None
    """

def move(
    execution_context: int | str | None = None,
    undo: bool | None = None,
    /,
    *,
    frames: int | None = 0,
    tweak: bool | None = False,
):
    """Move selected time marker(s)

    :type execution_context: int | str | None
    :type undo: bool | None
    :param frames: Frames
    :type frames: int | None
    :param tweak: Tweak, Operator has been activated using a click-drag event
    :type tweak: bool | None
    """

def rename(
    execution_context: int | str | None = None,
    undo: bool | None = None,
    /,
    *,
    name: str = "RenamedMarker",
):
    """Rename first selected time marker

    :type execution_context: int | str | None
    :type undo: bool | None
    :param name: Name, New name for marker
    :type name: str
    """

def select(
    execution_context: int | str | None = None,
    undo: bool | None = None,
    /,
    *,
    wait_to_deselect_others: bool | None = False,
    mouse_x: int | None = 0,
    mouse_y: int | None = 0,
    extend: bool | None = False,
    camera: bool | None = False,
):
    """Select time marker(s)

    :type execution_context: int | str | None
    :type undo: bool | None
    :param wait_to_deselect_others: Wait to Deselect Others
    :type wait_to_deselect_others: bool | None
    :param mouse_x: Mouse X
    :type mouse_x: int | None
    :param mouse_y: Mouse Y
    :type mouse_y: int | None
    :param extend: Extend, Extend the selection
    :type extend: bool | None
    :param camera: Camera, Select the camera
    :type camera: bool | None
    """

def select_all(
    execution_context: int | str | None = None,
    undo: bool | None = None,
    /,
    *,
    action: typing.Literal["TOGGLE", "SELECT", "DESELECT", "INVERT"] | None = "TOGGLE",
):
    """Change selection of all time markers

        :type execution_context: int | str | None
        :type undo: bool | None
        :param action: Action, Selection action to execute

    TOGGLE
    Toggle -- Toggle selection for all elements.

    SELECT
    Select -- Select all elements.

    DESELECT
    Deselect -- Deselect all elements.

    INVERT
    Invert -- Invert selection of all elements.
        :type action: typing.Literal['TOGGLE','SELECT','DESELECT','INVERT'] | None
    """

def select_box(
    execution_context: int | str | None = None,
    undo: bool | None = None,
    /,
    *,
    xmin: int | None = 0,
    xmax: int | None = 0,
    ymin: int | None = 0,
    ymax: int | None = 0,
    wait_for_input: bool | None = True,
    mode: typing.Literal["SET", "ADD", "SUB"] | None = "SET",
    tweak: bool | None = False,
):
    """Select all time markers using box selection

        :type execution_context: int | str | None
        :type undo: bool | None
        :param xmin: X Min
        :type xmin: int | None
        :param xmax: X Max
        :type xmax: int | None
        :param ymin: Y Min
        :type ymin: int | None
        :param ymax: Y Max
        :type ymax: int | None
        :param wait_for_input: Wait for Input
        :type wait_for_input: bool | None
        :param mode: Mode

    SET
    Set -- Set a new selection.

    ADD
    Extend -- Extend existing selection.

    SUB
    Subtract -- Subtract existing selection.
        :type mode: typing.Literal['SET','ADD','SUB'] | None
        :param tweak: Tweak, Operator has been activated using a click-drag event
        :type tweak: bool | None
    """

def select_leftright(
    execution_context: int | str | None = None,
    undo: bool | None = None,
    /,
    *,
    mode: typing.Literal["LEFT", "RIGHT"] | None = "LEFT",
    extend: bool | None = False,
):
    """Select markers on and left/right of the current frame

    :type execution_context: int | str | None
    :type undo: bool | None
    :param mode: Mode
    :type mode: typing.Literal['LEFT','RIGHT'] | None
    :param extend: Extend Select
    :type extend: bool | None
    """
