"""
This file is generated by generator/run.py based on the Chrome DevTools Protocol.

EventBreakpoints permits setting JavaScript breakpoints on operations and events
occurring in native code invoked from JavaScript. Once breakpoint is hit, it is
reported through Debugger domain, similarly to regular breakpoints being hit.
https://chromedevtools.github.io/devtools-protocol/tot/EventBreakpoints/

***************************************************
                    Methods
***************************************************
"""
from __future__ import annotations

from cdpkit.protocol.base import CDPMethod, InputModel


class SetInstrumentationBreakpointInput(InputModel):

    eventName: str


class SetInstrumentationBreakpoint(CDPMethod[None]):
    """ Sets breakpoint on particular native event. """

    INPUT_VALIDATOR = SetInstrumentationBreakpointInput
    OUTPUT_VALIDATOR = None

    def __init__(
        self,
        *,
        event_name: str
    ):
        super().__init__(
            eventName=event_name
        )


class RemoveInstrumentationBreakpointInput(InputModel):

    eventName: str


class RemoveInstrumentationBreakpoint(CDPMethod[None]):
    """ Removes breakpoint on particular native event. """

    INPUT_VALIDATOR = RemoveInstrumentationBreakpointInput
    OUTPUT_VALIDATOR = None

    def __init__(
        self,
        *,
        event_name: str
    ):
        super().__init__(
            eventName=event_name
        )


class Disable(CDPMethod[None]):
    """ Removes all breakpoints """

    INPUT_VALIDATOR = None
    OUTPUT_VALIDATOR = None
