# AUTO-GENERATED By cidipi/tools/generator.py. DO NOT EDIT.

from enum import Enum
from typing import Any, Literal, Optional, TypeVar, Union

from pydantic import BaseModel


class Console:
    """
    This domain is deprecated - use Runtime or Log instead.
    """

    class TypeConsoleMessage(BaseModel):
        """
        Console message.
        """

        source: Literal[
            "xml",
            "javascript",
            "network",
            "console-api",
            "storage",
            "appcache",
            "rendering",
            "security",
            "other",
            "deprecation",
            "worker",
        ]
        """
        Message source.
        """
        level: Literal["log", "warning", "error", "debug", "info"]
        """
        Message severity.
        """
        text: str
        """
        Message text.
        """
        url: Optional[str] = None
        """
        URL of the message origin.
        """
        line: Optional[Union[float, int]] = None
        """
        Line number in the resource that generated this message (1-based).
        """
        column: Optional[Union[float, int]] = None
        """
        Column number in the resource that generated this message (1-based).
        """


class Debugger:
    """
        Debugger domain exposes JavaScript debugging capabilities. It allows setting and removing
    breakpoints, stepping through execution, exploring stack traces, etc.
    """

    TypeBreakpointId = TypeVar("TypeBreakpointId", bound=str)
    """
    Breakpoint identifier.
    """

    TypeCallFrameId = TypeVar("TypeCallFrameId", bound=str)
    """
    Call frame identifier.
    """

    class TypeLocation(BaseModel):
        """
        Location in the source code.
        """

        scriptId: "Runtime.TypeScriptId"
        """
        Script identifier as reported in the `Debugger.scriptParsed`.
        """
        lineNumber: Union[float, int]
        """
        Line number in the script (0-based).
        """
        columnNumber: Optional[Union[float, int]] = None
        """
        Column number in the script (0-based).
        """

    class TypeScriptPosition(BaseModel):
        """
        Location in the source code.
        """

        lineNumber: Union[float, int]
        columnNumber: Union[float, int]

    class TypeLocationRange(BaseModel):
        """
        Location range within one script.
        """

        scriptId: "Runtime.TypeScriptId"
        start: "Debugger.TypeScriptPosition"
        end: "Debugger.TypeScriptPosition"

    class TypeCallFrame(BaseModel):
        """
        JavaScript call frame. Array of call frames form the call stack.
        """

        callFrameId: "Debugger.TypeCallFrameId"
        """
        Call frame identifier. This identifier is only valid while the virtual machine is paused.
        """
        functionName: str
        """
        Name of the JavaScript function called on this call frame.
        """
        functionLocation: Optional["Debugger.TypeLocation"] = None
        """
        Location in the source code.
        """
        location: "Debugger.TypeLocation"
        """
        Location in the source code.
        """
        url: str
        """
        JavaScript script name or url.
Deprecated in favor of using the `location.scriptId` to resolve the URL via a previously
sent `Debugger.scriptParsed` event.
        """
        scopeChain: list[Any]
        """
        Scope chain for this call frame.
        """
        this: "Runtime.TypeRemoteObject"
        """
        `this` object for this call frame.
        """
        returnValue: Optional["Runtime.TypeRemoteObject"] = None
        """
        The value being returned, if the function is at return point.
        """
        canBeRestarted: Optional[bool] = None
        """
        Valid only while the VM is paused and indicates whether this frame
can be restarted or not. Note that a `true` value here does not
guarantee that Debugger#restartFrame with this CallFrameId will be
successful, but it is very likely.
        """

    class TypeScope(BaseModel):
        """
        Scope description.
        """

        type: Literal[
            "global",
            "local",
            "with",
            "closure",
            "catch",
            "block",
            "script",
            "eval",
            "module",
            "wasm-expression-stack",
        ]
        """
        Scope type.
        """
        object: "Runtime.TypeRemoteObject"
        """
        Object representing the scope. For `global` and `with` scopes it represents the actual
object; for the rest of the scopes, it is artificial transient object enumerating scope
variables as its properties.
        """
        name: Optional[str] = None
        startLocation: Optional["Debugger.TypeLocation"] = None
        """
        Location in the source code where scope starts
        """
        endLocation: Optional["Debugger.TypeLocation"] = None
        """
        Location in the source code where scope ends
        """

    class TypeSearchMatch(BaseModel):
        """
        Search match for resource.
        """

        lineNumber: Union[float, int]
        """
        Line number in resource content.
        """
        lineContent: str
        """
        Line with match content.
        """

    class TypeBreakLocation(BaseModel):
        scriptId: "Runtime.TypeScriptId"
        """
        Script identifier as reported in the `Debugger.scriptParsed`.
        """
        lineNumber: Union[float, int]
        """
        Line number in the script (0-based).
        """
        columnNumber: Optional[Union[float, int]] = None
        """
        Column number in the script (0-based).
        """
        type: Optional[Literal["debuggerStatement", "call", "return"]] = None

    class TypeWasmDisassemblyChunk(BaseModel):
        lines: list[Any]
        """
        The next chunk of disassembled lines.
        """
        bytecodeOffsets: list[Any]
        """
        The bytecode offsets describing the start of each line.
        """

    class TypeScriptLanguage(str, Enum):
        """
        Enum of possible script languages.
        """

        JavaScript = "JavaScript"
        WebAssembly = "WebAssembly"

    class TypeDebugSymbols(BaseModel):
        """
        Debug symbols available for a wasm script.
        """

        type: Literal["None", "SourceMap", "EmbeddedDWARF", "ExternalDWARF"]
        """
        Type of the debug symbols.
        """
        externalURL: Optional[str] = None
        """
        URL of the external symbol source.
        """


class HeapProfiler:
    TypeHeapSnapshotObjectId = TypeVar("TypeHeapSnapshotObjectId", bound=str)
    """
    Heap snapshot object id.
    """

    class TypeSamplingHeapProfileNode(BaseModel):
        """
        Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes.
        """

        callFrame: "Runtime.TypeCallFrame"
        """
        Function location.
        """
        selfSize: Union[float, int]
        """
        Allocations size in bytes for the node excluding children.
        """
        id: Union[float, int]
        """
        Node id. Ids are unique across all profiles collected between startSampling and stopSampling.
        """
        children: list[Any]
        """
        Child nodes.
        """

    class TypeSamplingHeapProfileSample(BaseModel):
        """
        A single sample from a sampling profile.
        """

        size: Union[float, int]
        """
        Allocation size in bytes attributed to the sample.
        """
        nodeId: Union[float, int]
        """
        Id of the corresponding profile tree node.
        """
        ordinal: Union[float, int]
        """
        Time-ordered sample ordinal number. It is unique across all profiles retrieved
between startSampling and stopSampling.
        """

    class TypeSamplingHeapProfile(BaseModel):
        """
        Sampling profile.
        """

        head: "HeapProfiler.TypeSamplingHeapProfileNode"
        samples: list[Any]


class Profiler:
    class TypeProfileNode(BaseModel):
        """
        Profile node. Holds callsite information, execution statistics and child nodes.
        """

        id: Union[float, int]
        """
        Unique id of the node.
        """
        callFrame: "Runtime.TypeCallFrame"
        """
        Function location.
        """
        hitCount: Optional[Union[float, int]] = None
        """
        Number of samples where this node was on top of the call stack.
        """
        children: Optional[list[Any]] = None
        """
        Child node ids.
        """
        deoptReason: Optional[str] = None
        """
        The reason of being not optimized. The function may be deoptimized or marked as don't
optimize.
        """
        positionTicks: Optional[list[Any]] = None
        """
        An array of source position ticks.
        """

    class TypeProfile(BaseModel):
        """
        Profile.
        """

        nodes: list[Any]
        """
        The list of profile nodes. First item is the root node.
        """
        startTime: Union[float, int]
        """
        Profiling start timestamp in microseconds.
        """
        endTime: Union[float, int]
        """
        Profiling end timestamp in microseconds.
        """
        samples: Optional[list[Any]] = None
        """
        Ids of samples top nodes.
        """
        timeDeltas: Optional[list[Any]] = None
        """
        Time intervals between adjacent samples in microseconds. The first delta is relative to the
profile startTime.
        """

    class TypePositionTickInfo(BaseModel):
        """
        Specifies a number of samples attributed to a certain source position.
        """

        line: Union[float, int]
        """
        Source line number (1-based).
        """
        ticks: Union[float, int]
        """
        Number of samples attributed to the source line.
        """

    class TypeCoverageRange(BaseModel):
        """
        Coverage data for a source range.
        """

        startOffset: Union[float, int]
        """
        JavaScript script source offset for the range start.
        """
        endOffset: Union[float, int]
        """
        JavaScript script source offset for the range end.
        """
        count: Union[float, int]
        """
        Collected execution count of the source range.
        """

    class TypeFunctionCoverage(BaseModel):
        """
        Coverage data for a JavaScript function.
        """

        functionName: str
        """
        JavaScript function name.
        """
        ranges: list[Any]
        """
        Source ranges inside the function with coverage data.
        """
        isBlockCoverage: bool
        """
        Whether coverage data for this function has block granularity.
        """

    class TypeScriptCoverage(BaseModel):
        """
        Coverage data for a JavaScript script.
        """

        scriptId: "Runtime.TypeScriptId"
        """
        JavaScript script id.
        """
        url: str
        """
        JavaScript script name or url.
        """
        functions: list[Any]
        """
        Functions contained in the script that has coverage data.
        """


class Runtime:
    """
        Runtime domain exposes JavaScript runtime by means of remote evaluation and mirror objects.
    Evaluation results are returned as mirror object that expose object type, string representation
    and unique identifier that can be used for further object reference. Original objects are
    maintained in memory unless they are either explicitly released or are released along with the
    other objects in their object group.
    """

    TypeScriptId = TypeVar("TypeScriptId", bound=str)
    """
    Unique script identifier.
    """

    class TypeSerializationOptions(BaseModel):
        """
        Represents options for serialization. Overrides `generatePreview` and `returnByValue`.
        """

        serialization: Literal["deep", "json", "idOnly"]
        maxDepth: Optional[Union[float, int]] = None
        """
        Deep serialization depth. Default is full depth. Respected only in `deep` serialization mode.
        """
        additionalParameters: Optional[dict[str, Any]] = None
        """
        Embedder-specific parameters. For example if connected to V8 in Chrome these control DOM
serialization via `maxNodeDepth: integer` and `includeShadowTree: "none" | "open" | "all"`.
Values can be only of type string or integer.
        """

    class TypeDeepSerializedValue(BaseModel):
        """
        Represents deep serialized value.
        """

        type: Literal[
            "undefined",
            "null",
            "string",
            "number",
            "boolean",
            "bigint",
            "regexp",
            "date",
            "symbol",
            "array",
            "object",
            "function",
            "map",
            "set",
            "weakmap",
            "weakset",
            "error",
            "proxy",
            "promise",
            "typedarray",
            "arraybuffer",
            "node",
            "window",
            "generator",
        ]
        value: Optional[Any] = None
        objectId: Optional[str] = None
        weakLocalObjectReference: Optional[Union[float, int]] = None
        """
        Set if value reference met more then once during serialization. In such
case, value is provided only to one of the serialized values. Unique
per value in the scope of one CDP call.
        """

    TypeRemoteObjectId = TypeVar("TypeRemoteObjectId", bound=str)
    """
    Unique object identifier.
    """

    TypeUnserializableValue = TypeVar("TypeUnserializableValue", bound=str)
    """
    Primitive value which cannot be JSON-stringified. Includes values `-0`, `NaN`, `Infinity`,
`-Infinity`, and bigint literals.
    """

    class TypeRemoteObject(BaseModel):
        """
        Mirror object referencing original JavaScript object.
        """

        type: Literal[
            "object",
            "function",
            "undefined",
            "string",
            "number",
            "boolean",
            "symbol",
            "bigint",
        ]
        """
        Object type.
        """
        subtype: Optional[
            Literal[
                "array",
                "null",
                "node",
                "regexp",
                "date",
                "map",
                "set",
                "weakmap",
                "weakset",
                "iterator",
                "generator",
                "error",
                "proxy",
                "promise",
                "typedarray",
                "arraybuffer",
                "dataview",
                "webassemblymemory",
                "wasmvalue",
            ]
        ] = None
        """
        Object subtype hint. Specified for `object` type values only.
NOTE: If you change anything here, make sure to also update
`subtype` in `ObjectPreview` and `PropertyPreview` below.
        """
        className: Optional[str] = None
        """
        Object class (constructor) name. Specified for `object` type values only.
        """
        value: Optional[Any] = None
        """
        Remote object value in case of primitive values or JSON values (if it was requested).
        """
        unserializableValue: Optional["Runtime.TypeUnserializableValue"] = None
        """
        Primitive value which can not be JSON-stringified does not have `value`, but gets this
property.
        """
        description: Optional[str] = None
        """
        String representation of the object.
        """
        deepSerializedValue: Optional["Runtime.TypeDeepSerializedValue"] = None
        """
        Deep serialized value.
        """
        objectId: Optional["Runtime.TypeRemoteObjectId"] = None
        """
        Unique object identifier (for non-primitive values).
        """
        preview: Optional["Runtime.TypeObjectPreview"] = None
        """
        Preview containing abbreviated property values. Specified for `object` type values only.
        """
        customPreview: Optional["Runtime.TypeCustomPreview"] = None

    class TypeCustomPreview(BaseModel):
        header: str
        """
        The JSON-stringified result of formatter.header(object, config) call.
It contains json ML array that represents RemoteObject.
        """
        bodyGetterId: Optional["Runtime.TypeRemoteObjectId"] = None
        """
        If formatter returns true as a result of formatter.hasBody call then bodyGetterId will
contain RemoteObjectId for the function that returns result of formatter.body(object, config) call.
The result value is json ML array.
        """

    class TypeObjectPreview(BaseModel):
        """
        Object containing abbreviated remote object value.
        """

        type: Literal[
            "object",
            "function",
            "undefined",
            "string",
            "number",
            "boolean",
            "symbol",
            "bigint",
        ]
        """
        Object type.
        """
        subtype: Optional[
            Literal[
                "array",
                "null",
                "node",
                "regexp",
                "date",
                "map",
                "set",
                "weakmap",
                "weakset",
                "iterator",
                "generator",
                "error",
                "proxy",
                "promise",
                "typedarray",
                "arraybuffer",
                "dataview",
                "webassemblymemory",
                "wasmvalue",
            ]
        ] = None
        """
        Object subtype hint. Specified for `object` type values only.
        """
        description: Optional[str] = None
        """
        String representation of the object.
        """
        overflow: bool
        """
        True iff some of the properties or entries of the original object did not fit.
        """
        properties: list[Any]
        """
        List of the properties.
        """
        entries: Optional[list[Any]] = None
        """
        List of the entries. Specified for `map` and `set` subtype values only.
        """

    class TypePropertyPreview(BaseModel):
        name: str
        """
        Property name.
        """
        type: Literal[
            "object",
            "function",
            "undefined",
            "string",
            "number",
            "boolean",
            "symbol",
            "accessor",
            "bigint",
        ]
        """
        Object type. Accessor means that the property itself is an accessor property.
        """
        value: Optional[str] = None
        """
        User-friendly property value string.
        """
        valuePreview: Optional["Runtime.TypeObjectPreview"] = None
        """
        Nested value preview.
        """
        subtype: Optional[
            Literal[
                "array",
                "null",
                "node",
                "regexp",
                "date",
                "map",
                "set",
                "weakmap",
                "weakset",
                "iterator",
                "generator",
                "error",
                "proxy",
                "promise",
                "typedarray",
                "arraybuffer",
                "dataview",
                "webassemblymemory",
                "wasmvalue",
            ]
        ] = None
        """
        Object subtype hint. Specified for `object` type values only.
        """

    class TypeEntryPreview(BaseModel):
        key: Optional["Runtime.TypeObjectPreview"] = None
        """
        Preview of the key. Specified for map-like collection entries.
        """
        value: "Runtime.TypeObjectPreview"
        """
        Preview of the value.
        """

    class TypePropertyDescriptor(BaseModel):
        """
        Object property descriptor.
        """

        name: str
        """
        Property name or symbol description.
        """
        value: Optional["Runtime.TypeRemoteObject"] = None
        """
        The value associated with the property.
        """
        writable: Optional[bool] = None
        """
        True if the value associated with the property may be changed (data descriptors only).
        """
        get: Optional["Runtime.TypeRemoteObject"] = None
        """
        A function which serves as a getter for the property, or `undefined` if there is no getter
(accessor descriptors only).
        """
        set: Optional["Runtime.TypeRemoteObject"] = None
        """
        A function which serves as a setter for the property, or `undefined` if there is no setter
(accessor descriptors only).
        """
        configurable: bool
        """
        True if the type of this property descriptor may be changed and if the property may be
deleted from the corresponding object.
        """
        enumerable: bool
        """
        True if this property shows up during enumeration of the properties on the corresponding
object.
        """
        wasThrown: Optional[bool] = None
        """
        True if the result was thrown during the evaluation.
        """
        isOwn: Optional[bool] = None
        """
        True if the property is owned for the object.
        """
        symbol: Optional["Runtime.TypeRemoteObject"] = None
        """
        Property symbol object, if the property is of the `symbol` type.
        """

    class TypeInternalPropertyDescriptor(BaseModel):
        """
        Object internal property descriptor. This property isn't normally visible in JavaScript code.
        """

        name: str
        """
        Conventional property name.
        """
        value: Optional["Runtime.TypeRemoteObject"] = None
        """
        The value associated with the property.
        """

    class TypePrivatePropertyDescriptor(BaseModel):
        """
        Object private field descriptor.
        """

        name: str
        """
        Private property name.
        """
        value: Optional["Runtime.TypeRemoteObject"] = None
        """
        The value associated with the private property.
        """
        get: Optional["Runtime.TypeRemoteObject"] = None
        """
        A function which serves as a getter for the private property,
or `undefined` if there is no getter (accessor descriptors only).
        """
        set: Optional["Runtime.TypeRemoteObject"] = None
        """
        A function which serves as a setter for the private property,
or `undefined` if there is no setter (accessor descriptors only).
        """

    class TypeCallArgument(BaseModel):
        """
                Represents function call argument. Either remote object id `objectId`, primitive `value`,
        unserializable primitive value or neither of (for undefined) them should be specified.
        """

        value: Optional[Any] = None
        """
        Primitive value or serializable javascript object.
        """
        unserializableValue: Optional["Runtime.TypeUnserializableValue"] = None
        """
        Primitive value which can not be JSON-stringified.
        """
        objectId: Optional["Runtime.TypeRemoteObjectId"] = None
        """
        Remote object handle.
        """

    TypeExecutionContextId = TypeVar("TypeExecutionContextId", bound=Union[float, int])
    """
    Id of an execution context.
    """

    class TypeExecutionContextDescription(BaseModel):
        """
        Description of an isolated world.
        """

        id: "Runtime.TypeExecutionContextId"
        """
        Unique id of the execution context. It can be used to specify in which execution context
script evaluation should be performed.
        """
        origin: str
        """
        Execution context origin.
        """
        name: str
        """
        Human readable name describing given context.
        """
        uniqueId: str
        """
        A system-unique execution context identifier. Unlike the id, this is unique across
multiple processes, so can be reliably used to identify specific context while backend
performs a cross-process navigation.
        """
        auxData: Optional[dict[str, Any]] = None
        """
        Embedder-specific auxiliary data likely matching {isDefault: boolean, type: 'default'|'isolated'|'worker', frameId: string}
        """

    class TypeExceptionDetails(BaseModel):
        """
                Detailed information about exception (or error) that was thrown during script compilation or
        execution.
        """

        exceptionId: Union[float, int]
        """
        Exception id.
        """
        text: str
        """
        Exception text, which should be used together with exception object when available.
        """
        lineNumber: Union[float, int]
        """
        Line number of the exception location (0-based).
        """
        columnNumber: Union[float, int]
        """
        Column number of the exception location (0-based).
        """
        scriptId: Optional["Runtime.TypeScriptId"] = None
        """
        Script ID of the exception location.
        """
        url: Optional[str] = None
        """
        URL of the exception location, to be used when the script was not reported.
        """
        stackTrace: Optional["Runtime.TypeStackTrace"] = None
        """
        JavaScript stack trace if available.
        """
        exception: Optional["Runtime.TypeRemoteObject"] = None
        """
        Exception object if available.
        """
        executionContextId: Optional["Runtime.TypeExecutionContextId"] = None
        """
        Identifier of the context where exception happened.
        """
        exceptionMetaData: Optional[dict[str, Any]] = None
        """
        Dictionary with entries of meta data that the client associated
with this exception, such as information about associated network
requests, etc.
        """

    TypeTimestamp = TypeVar("TypeTimestamp", bound=Union[float, int])
    """
    Number of milliseconds since epoch.
    """

    TypeTimeDelta = TypeVar("TypeTimeDelta", bound=Union[float, int])
    """
    Number of milliseconds.
    """

    class TypeCallFrame(BaseModel):
        """
        Stack entry for runtime errors and assertions.
        """

        functionName: str
        """
        JavaScript function name.
        """
        scriptId: "Runtime.TypeScriptId"
        """
        JavaScript script id.
        """
        url: str
        """
        JavaScript script name or url.
        """
        lineNumber: Union[float, int]
        """
        JavaScript script line number (0-based).
        """
        columnNumber: Union[float, int]
        """
        JavaScript script column number (0-based).
        """

    class TypeStackTrace(BaseModel):
        """
        Call frames for assertions or error messages.
        """

        description: Optional[str] = None
        """
        String label of this stack trace. For async traces this may be a name of the function that
initiated the async call.
        """
        callFrames: list[Any]
        """
        JavaScript function name.
        """
        parent: Optional["Runtime.TypeStackTrace"] = None
        """
        Asynchronous JavaScript stack trace that preceded this stack, if available.
        """
        parentId: Optional["Runtime.TypeStackTraceId"] = None
        """
        Asynchronous JavaScript stack trace that preceded this stack, if available.
        """

    TypeUniqueDebuggerId = TypeVar("TypeUniqueDebuggerId", bound=str)
    """
    Unique identifier of current debugger.
    """

    class TypeStackTraceId(BaseModel):
        """
                If `debuggerId` is set stack trace comes from another debugger and can be resolved there. This
        allows to track cross-debugger calls. See `Runtime.StackTrace` and `Debugger.paused` for usages.
        """

        id: str
        debuggerId: Optional["Runtime.TypeUniqueDebuggerId"] = None


class Schema:
    """
    This domain is deprecated.
    """

    class TypeDomain(BaseModel):
        """
        Description of the protocol domain.
        """

        name: str
        """
        Domain name.
        """
        version: str
        """
        Domain version.
        """


class Accessibility:
    TypeAXNodeId = TypeVar("TypeAXNodeId", bound=str)
    """
    Unique accessibility node identifier.
    """

    class TypeAXValueType(str, Enum):
        """
        Enum of possible property types.
        """

        boolean = "boolean"
        tristate = "tristate"
        booleanOrUndefined = "booleanOrUndefined"
        idref = "idref"
        idrefList = "idrefList"
        integer = "integer"
        node = "node"
        nodeList = "nodeList"
        number = "number"
        string = "string"
        computedString = "computedString"
        token = "token"
        tokenList = "tokenList"
        domRelation = "domRelation"
        role = "role"
        internalRole = "internalRole"
        valueUndefined = "valueUndefined"

    class TypeAXValueSourceType(str, Enum):
        """
        Enum of possible property sources.
        """

        attribute = "attribute"
        implicit = "implicit"
        style = "style"
        contents = "contents"
        placeholder = "placeholder"
        relatedElement = "relatedElement"

    class TypeAXValueNativeSourceType(str, Enum):
        """
        Enum of possible native property sources (as a subtype of a particular AXValueSourceType).
        """

        description = "description"
        figcaption = "figcaption"
        label = "label"
        labelfor = "labelfor"
        labelwrapped = "labelwrapped"
        legend = "legend"
        rubyannotation = "rubyannotation"
        tablecaption = "tablecaption"
        title = "title"
        other = "other"

    class TypeAXValueSource(BaseModel):
        """
        A single source for a computed AX property.
        """

        type: "Accessibility.TypeAXValueSourceType"
        """
        What type of source this is.
        """
        value: Optional["Accessibility.TypeAXValue"] = None
        """
        The value of this property source.
        """
        attribute: Optional[str] = None
        """
        The name of the relevant attribute, if any.
        """
        attributeValue: Optional["Accessibility.TypeAXValue"] = None
        """
        The value of the relevant attribute, if any.
        """
        superseded: Optional[bool] = None
        """
        Whether this source is superseded by a higher priority source.
        """
        nativeSource: Optional["Accessibility.TypeAXValueNativeSourceType"] = None
        """
        The native markup source for this value, e.g. a `<label>` element.
        """
        nativeSourceValue: Optional["Accessibility.TypeAXValue"] = None
        """
        The value, such as a node or node list, of the native source.
        """
        invalid: Optional[bool] = None
        """
        Whether the value for this property is invalid.
        """
        invalidReason: Optional[str] = None
        """
        Reason for the value being invalid, if it is.
        """

    class TypeAXRelatedNode(BaseModel):
        backendDOMNodeId: "DOM.TypeBackendNodeId"
        """
        The BackendNodeId of the related DOM node.
        """
        idref: Optional[str] = None
        """
        The IDRef value provided, if any.
        """
        text: Optional[str] = None
        """
        The text alternative of this node in the current context.
        """

    class TypeAXProperty(BaseModel):
        name: "Accessibility.TypeAXPropertyName"
        """
        The name of this property.
        """
        value: "Accessibility.TypeAXValue"
        """
        The value of this property.
        """

    class TypeAXValue(BaseModel):
        """
        A single computed AX property.
        """

        type: "Accessibility.TypeAXValueType"
        """
        The type of this value.
        """
        value: Optional[Any] = None
        """
        The computed value of this property.
        """
        relatedNodes: Optional[list[Any]] = None
        """
        One or more related nodes, if applicable.
        """
        sources: Optional[list[Any]] = None
        """
        The sources which contributed to the computation of this property.
        """

    class TypeAXPropertyName(str, Enum):
        """
                Values of AXProperty name:
        - from 'busy' to 'roledescription': states which apply to every AX node
        - from 'live' to 'root': attributes which apply to nodes in live regions
        - from 'autocomplete' to 'valuetext': attributes which apply to widgets
        - from 'checked' to 'selected': states which apply to widgets
        - from 'activedescendant' to 'owns' - relationships between elements other than parent/child/sibling.
        """

        busy = "busy"
        disabled = "disabled"
        editable = "editable"
        focusable = "focusable"
        focused = "focused"
        hidden = "hidden"
        hiddenRoot = "hiddenRoot"
        invalid = "invalid"
        keyshortcuts = "keyshortcuts"
        settable = "settable"
        roledescription = "roledescription"
        live = "live"
        atomic = "atomic"
        relevant = "relevant"
        root = "root"
        autocomplete = "autocomplete"
        hasPopup = "hasPopup"
        level = "level"
        multiselectable = "multiselectable"
        orientation = "orientation"
        multiline = "multiline"
        readonly = "readonly"
        required = "required"
        valuemin = "valuemin"
        valuemax = "valuemax"
        valuetext = "valuetext"
        checked = "checked"
        expanded = "expanded"
        modal = "modal"
        pressed = "pressed"
        selected = "selected"
        activedescendant = "activedescendant"
        controls = "controls"
        describedby = "describedby"
        details = "details"
        errormessage = "errormessage"
        flowto = "flowto"
        labelledby = "labelledby"
        owns = "owns"
        url = "url"

    class TypeAXNode(BaseModel):
        """
        A node in the accessibility tree.
        """

        nodeId: "Accessibility.TypeAXNodeId"
        """
        Unique identifier for this node.
        """
        ignored: bool
        """
        Whether this node is ignored for accessibility
        """
        ignoredReasons: Optional[list[Any]] = None
        """
        Collection of reasons why this node is hidden.
        """
        role: Optional["Accessibility.TypeAXValue"] = None
        """
        This `Node`'s role, whether explicit or implicit.
        """
        chromeRole: Optional["Accessibility.TypeAXValue"] = None
        """
        This `Node`'s Chrome raw role.
        """
        name: Optional["Accessibility.TypeAXValue"] = None
        """
        The accessible name for this `Node`.
        """
        description: Optional["Accessibility.TypeAXValue"] = None
        """
        The accessible description for this `Node`.
        """
        value: Optional["Accessibility.TypeAXValue"] = None
        """
        The value for this `Node`.
        """
        properties: Optional[list[Any]] = None
        """
        All other properties
        """
        parentId: Optional["Accessibility.TypeAXNodeId"] = None
        """
        ID for this node's parent.
        """
        childIds: Optional[list[Any]] = None
        """
        IDs for each of this node's child nodes.
        """
        backendDOMNodeId: Optional["DOM.TypeBackendNodeId"] = None
        """
        The backend ID for the associated DOM node, if any.
        """
        frameId: Optional["Page.TypeFrameId"] = None
        """
        The frame ID for the frame associated with this nodes document.
        """


class Animation:
    class TypeAnimation(BaseModel):
        """
        Animation instance.
        """

        id: str
        """
        `Animation`'s id.
        """
        name: str
        """
        `Animation`'s name.
        """
        pausedState: bool
        """
        `Animation`'s internal paused state.
        """
        playState: str
        """
        `Animation`'s play state.
        """
        playbackRate: Union[float, int]
        """
        `Animation`'s playback rate.
        """
        startTime: Union[float, int]
        """
        `Animation`'s start time.
Milliseconds for time based animations and
percentage [0 - 100] for scroll driven animations
(i.e. when viewOrScrollTimeline exists).
        """
        currentTime: Union[float, int]
        """
        `Animation`'s current time.
        """
        type: Literal["CSSTransition", "CSSAnimation", "WebAnimation"]
        """
        Animation type of `Animation`.
        """
        source: Optional["Animation.TypeAnimationEffect"] = None
        """
        `Animation`'s source animation node.
        """
        cssId: Optional[str] = None
        """
        A unique ID for `Animation` representing the sources that triggered this CSS
animation/transition.
        """
        viewOrScrollTimeline: Optional["Animation.TypeViewOrScrollTimeline"] = None
        """
        View or scroll timeline
        """

    class TypeViewOrScrollTimeline(BaseModel):
        """
        Timeline instance
        """

        sourceNodeId: Optional["DOM.TypeBackendNodeId"] = None
        """
        Scroll container node
        """
        startOffset: Optional[Union[float, int]] = None
        """
        Represents the starting scroll position of the timeline
as a length offset in pixels from scroll origin.
        """
        endOffset: Optional[Union[float, int]] = None
        """
        Represents the ending scroll position of the timeline
as a length offset in pixels from scroll origin.
        """
        subjectNodeId: Optional["DOM.TypeBackendNodeId"] = None
        """
        The element whose principal box's visibility in the
scrollport defined the progress of the timeline.
Does not exist for animations with ScrollTimeline
        """
        axis: "DOM.TypeScrollOrientation"
        """
        Orientation of the scroll
        """

    class TypeAnimationEffect(BaseModel):
        """
        AnimationEffect instance
        """

        delay: Union[float, int]
        """
        `AnimationEffect`'s delay.
        """
        endDelay: Union[float, int]
        """
        `AnimationEffect`'s end delay.
        """
        iterationStart: Union[float, int]
        """
        `AnimationEffect`'s iteration start.
        """
        iterations: Union[float, int]
        """
        `AnimationEffect`'s iterations.
        """
        duration: Union[float, int]
        """
        `AnimationEffect`'s iteration duration.
Milliseconds for time based animations and
percentage [0 - 100] for scroll driven animations
(i.e. when viewOrScrollTimeline exists).
        """
        direction: str
        """
        `AnimationEffect`'s playback direction.
        """
        fill: str
        """
        `AnimationEffect`'s fill mode.
        """
        backendNodeId: Optional["DOM.TypeBackendNodeId"] = None
        """
        `AnimationEffect`'s target node.
        """
        keyframesRule: Optional["Animation.TypeKeyframesRule"] = None
        """
        `AnimationEffect`'s keyframes.
        """
        easing: str
        """
        `AnimationEffect`'s timing function.
        """

    class TypeKeyframesRule(BaseModel):
        """
        Keyframes Rule
        """

        name: Optional[str] = None
        """
        CSS keyframed animation's name.
        """
        keyframes: list[Any]
        """
        List of animation keyframes.
        """

    class TypeKeyframeStyle(BaseModel):
        """
        Keyframe Style
        """

        offset: str
        """
        Keyframe's time offset.
        """
        easing: str
        """
        `AnimationEffect`'s timing function.
        """


class Audits:
    """
    Audits domain allows investigation of page violations and possible improvements.
    """

    class TypeAffectedCookie(BaseModel):
        """
        Information about a cookie that is affected by an inspector issue.
        """

        name: str
        """
        The following three properties uniquely identify a cookie
        """
        path: str
        domain: str

    class TypeAffectedRequest(BaseModel):
        """
        Information about a request that is affected by an inspector issue.
        """

        requestId: "Network.TypeRequestId"
        """
        The unique request id.
        """
        url: Optional[str] = None

    class TypeAffectedFrame(BaseModel):
        """
        Information about the frame affected by an inspector issue.
        """

        frameId: "Page.TypeFrameId"

    class TypeCookieExclusionReason(str, Enum):
        ExcludeSameSiteUnspecifiedTreatedAsLax = (
            "ExcludeSameSiteUnspecifiedTreatedAsLax"
        )
        ExcludeSameSiteNoneInsecure = "ExcludeSameSiteNoneInsecure"
        ExcludeSameSiteLax = "ExcludeSameSiteLax"
        ExcludeSameSiteStrict = "ExcludeSameSiteStrict"
        ExcludeInvalidSameParty = "ExcludeInvalidSameParty"
        ExcludeSamePartyCrossPartyContext = "ExcludeSamePartyCrossPartyContext"
        ExcludeDomainNonASCII = "ExcludeDomainNonASCII"
        ExcludeThirdPartyCookieBlockedInFirstPartySet = (
            "ExcludeThirdPartyCookieBlockedInFirstPartySet"
        )
        ExcludeThirdPartyPhaseout = "ExcludeThirdPartyPhaseout"

    class TypeCookieWarningReason(str, Enum):
        WarnSameSiteUnspecifiedCrossSiteContext = (
            "WarnSameSiteUnspecifiedCrossSiteContext"
        )
        WarnSameSiteNoneInsecure = "WarnSameSiteNoneInsecure"
        WarnSameSiteUnspecifiedLaxAllowUnsafe = "WarnSameSiteUnspecifiedLaxAllowUnsafe"
        WarnSameSiteStrictLaxDowngradeStrict = "WarnSameSiteStrictLaxDowngradeStrict"
        WarnSameSiteStrictCrossDowngradeStrict = (
            "WarnSameSiteStrictCrossDowngradeStrict"
        )
        WarnSameSiteStrictCrossDowngradeLax = "WarnSameSiteStrictCrossDowngradeLax"
        WarnSameSiteLaxCrossDowngradeStrict = "WarnSameSiteLaxCrossDowngradeStrict"
        WarnSameSiteLaxCrossDowngradeLax = "WarnSameSiteLaxCrossDowngradeLax"
        WarnAttributeValueExceedsMaxSize = "WarnAttributeValueExceedsMaxSize"
        WarnDomainNonASCII = "WarnDomainNonASCII"
        WarnThirdPartyPhaseout = "WarnThirdPartyPhaseout"
        WarnCrossSiteRedirectDowngradeChangesInclusion = (
            "WarnCrossSiteRedirectDowngradeChangesInclusion"
        )

    class TypeCookieOperation(str, Enum):
        SetCookie = "SetCookie"
        ReadCookie = "ReadCookie"

    class TypeCookieIssueDetails(BaseModel):
        """
                This information is currently necessary, as the front-end has a difficult
        time finding a specific cookie. With this, we can convey specific error
        information without the cookie.
        """

        cookie: Optional["Audits.TypeAffectedCookie"] = None
        """
        If AffectedCookie is not set then rawCookieLine contains the raw
Set-Cookie header string. This hints at a problem where the
cookie line is syntactically or semantically malformed in a way
that no valid cookie could be created.
        """
        rawCookieLine: Optional[str] = None
        cookieWarningReasons: list[Any]
        cookieExclusionReasons: list[Any]
        operation: "Audits.TypeCookieOperation"
        """
        Optionally identifies the site-for-cookies and the cookie url, which
may be used by the front-end as additional context.
        """
        siteForCookies: Optional[str] = None
        cookieUrl: Optional[str] = None
        request: Optional["Audits.TypeAffectedRequest"] = None

    class TypeMixedContentResolutionStatus(str, Enum):
        MixedContentBlocked = "MixedContentBlocked"
        MixedContentAutomaticallyUpgraded = "MixedContentAutomaticallyUpgraded"
        MixedContentWarning = "MixedContentWarning"

    class TypeMixedContentResourceType(str, Enum):
        AttributionSrc = "AttributionSrc"
        Audio = "Audio"
        Beacon = "Beacon"
        CSPReport = "CSPReport"
        Download = "Download"
        EventSource = "EventSource"
        Favicon = "Favicon"
        Font = "Font"
        Form = "Form"
        Frame = "Frame"
        Image = "Image"
        Import = "Import"
        JSON = "JSON"
        Manifest = "Manifest"
        Ping = "Ping"
        PluginData = "PluginData"
        PluginResource = "PluginResource"
        Prefetch = "Prefetch"
        Resource = "Resource"
        Script = "Script"
        ServiceWorker = "ServiceWorker"
        SharedWorker = "SharedWorker"
        SpeculationRules = "SpeculationRules"
        Stylesheet = "Stylesheet"
        Track = "Track"
        Video = "Video"
        Worker = "Worker"
        XMLHttpRequest = "XMLHttpRequest"
        XSLT = "XSLT"

    class TypeMixedContentIssueDetails(BaseModel):
        resourceType: Optional["Audits.TypeMixedContentResourceType"] = None
        """
        The type of resource causing the mixed content issue (css, js, iframe,
form,...). Marked as optional because it is mapped to from
blink::mojom::RequestContextType, which will be replaced
by network::mojom::RequestDestination
        """
        resolutionStatus: "Audits.TypeMixedContentResolutionStatus"
        """
        The way the mixed content issue is being resolved.
        """
        insecureURL: str
        """
        The unsafe http url causing the mixed content issue.
        """
        mainResourceURL: str
        """
        The url responsible for the call to an unsafe url.
        """
        request: Optional["Audits.TypeAffectedRequest"] = None
        """
        The mixed content request.
Does not always exist (e.g. for unsafe form submission urls).
        """
        frame: Optional["Audits.TypeAffectedFrame"] = None
        """
        Optional because not every mixed content issue is necessarily linked to a frame.
        """

    class TypeBlockedByResponseReason(str, Enum):
        """
                Enum indicating the reason a response has been blocked. These reasons are
        refinements of the net error BLOCKED_BY_RESPONSE.
        """

        CoepFrameResourceNeedsCoepHeader = "CoepFrameResourceNeedsCoepHeader"
        CoopSandboxedIFrameCannotNavigateToCoopPage = (
            "CoopSandboxedIFrameCannotNavigateToCoopPage"
        )
        CorpNotSameOrigin = "CorpNotSameOrigin"
        CorpNotSameOriginAfterDefaultedToSameOriginByCoep = (
            "CorpNotSameOriginAfterDefaultedToSameOriginByCoep"
        )
        CorpNotSameOriginAfterDefaultedToSameOriginByDip = (
            "CorpNotSameOriginAfterDefaultedToSameOriginByDip"
        )
        CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip = (
            "CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip"
        )
        CorpNotSameSite = "CorpNotSameSite"

    class TypeBlockedByResponseIssueDetails(BaseModel):
        """
                Details for a request that has been blocked with the BLOCKED_BY_RESPONSE
        code. Currently only used for COEP/COOP, but may be extended to include
        some CSP errors in the future.
        """

        request: "Audits.TypeAffectedRequest"
        parentFrame: Optional["Audits.TypeAffectedFrame"] = None
        blockedFrame: Optional["Audits.TypeAffectedFrame"] = None
        reason: "Audits.TypeBlockedByResponseReason"

    class TypeHeavyAdResolutionStatus(str, Enum):
        HeavyAdBlocked = "HeavyAdBlocked"
        HeavyAdWarning = "HeavyAdWarning"

    class TypeHeavyAdReason(str, Enum):
        NetworkTotalLimit = "NetworkTotalLimit"
        CpuTotalLimit = "CpuTotalLimit"
        CpuPeakLimit = "CpuPeakLimit"

    class TypeHeavyAdIssueDetails(BaseModel):
        resolution: "Audits.TypeHeavyAdResolutionStatus"
        """
        The resolution status, either blocking the content or warning.
        """
        reason: "Audits.TypeHeavyAdReason"
        """
        The reason the ad was blocked, total network or cpu or peak cpu.
        """
        frame: "Audits.TypeAffectedFrame"
        """
        The frame that was blocked.
        """

    class TypeContentSecurityPolicyViolationType(str, Enum):
        kInlineViolation = "kInlineViolation"
        kEvalViolation = "kEvalViolation"
        kURLViolation = "kURLViolation"
        kTrustedTypesSinkViolation = "kTrustedTypesSinkViolation"
        kTrustedTypesPolicyViolation = "kTrustedTypesPolicyViolation"
        kWasmEvalViolation = "kWasmEvalViolation"

    class TypeSourceCodeLocation(BaseModel):
        scriptId: Optional["Runtime.TypeScriptId"] = None
        url: str
        lineNumber: Union[float, int]
        columnNumber: Union[float, int]

    class TypeContentSecurityPolicyIssueDetails(BaseModel):
        blockedURL: Optional[str] = None
        """
        The url not included in allowed sources.
        """
        violatedDirective: str
        """
        Specific directive that is violated, causing the CSP issue.
        """
        isReportOnly: bool
        contentSecurityPolicyViolationType: (
            "Audits.TypeContentSecurityPolicyViolationType"
        )
        frameAncestor: Optional["Audits.TypeAffectedFrame"] = None
        sourceCodeLocation: Optional["Audits.TypeSourceCodeLocation"] = None
        violatingNodeId: Optional["DOM.TypeBackendNodeId"] = None

    class TypeSharedArrayBufferIssueType(str, Enum):
        TransferIssue = "TransferIssue"
        CreationIssue = "CreationIssue"

    class TypeSharedArrayBufferIssueDetails(BaseModel):
        """
                Details for a issue arising from an SAB being instantiated in, or
        transferred to a context that is not cross-origin isolated.
        """

        sourceCodeLocation: "Audits.TypeSourceCodeLocation"
        isWarning: bool
        type: "Audits.TypeSharedArrayBufferIssueType"

    class TypeLowTextContrastIssueDetails(BaseModel):
        violatingNodeId: "DOM.TypeBackendNodeId"
        violatingNodeSelector: str
        contrastRatio: Union[float, int]
        thresholdAA: Union[float, int]
        thresholdAAA: Union[float, int]
        fontSize: str
        fontWeight: str

    class TypeCorsIssueDetails(BaseModel):
        """
                Details for a CORS related issue, e.g. a warning or error related to
        CORS RFC1918 enforcement.
        """

        corsErrorStatus: "Network.TypeCorsErrorStatus"
        isWarning: bool
        request: "Audits.TypeAffectedRequest"
        location: Optional["Audits.TypeSourceCodeLocation"] = None
        initiatorOrigin: Optional[str] = None
        resourceIPAddressSpace: Optional["Network.TypeIPAddressSpace"] = None
        clientSecurityState: Optional["Network.TypeClientSecurityState"] = None

    class TypeAttributionReportingIssueType(str, Enum):
        PermissionPolicyDisabled = "PermissionPolicyDisabled"
        UntrustworthyReportingOrigin = "UntrustworthyReportingOrigin"
        InsecureContext = "InsecureContext"
        InvalidHeader = "InvalidHeader"
        InvalidRegisterTriggerHeader = "InvalidRegisterTriggerHeader"
        SourceAndTriggerHeaders = "SourceAndTriggerHeaders"
        SourceIgnored = "SourceIgnored"
        TriggerIgnored = "TriggerIgnored"
        OsSourceIgnored = "OsSourceIgnored"
        OsTriggerIgnored = "OsTriggerIgnored"
        InvalidRegisterOsSourceHeader = "InvalidRegisterOsSourceHeader"
        InvalidRegisterOsTriggerHeader = "InvalidRegisterOsTriggerHeader"
        WebAndOsHeaders = "WebAndOsHeaders"
        NoWebOrOsSupport = "NoWebOrOsSupport"
        NavigationRegistrationWithoutTransientUserActivation = (
            "NavigationRegistrationWithoutTransientUserActivation"
        )
        InvalidInfoHeader = "InvalidInfoHeader"
        NoRegisterSourceHeader = "NoRegisterSourceHeader"
        NoRegisterTriggerHeader = "NoRegisterTriggerHeader"
        NoRegisterOsSourceHeader = "NoRegisterOsSourceHeader"
        NoRegisterOsTriggerHeader = "NoRegisterOsTriggerHeader"

    class TypeSharedDictionaryError(str, Enum):
        UseErrorCrossOriginNoCorsRequest = "UseErrorCrossOriginNoCorsRequest"
        UseErrorDictionaryLoadFailure = "UseErrorDictionaryLoadFailure"
        UseErrorMatchingDictionaryNotUsed = "UseErrorMatchingDictionaryNotUsed"
        UseErrorUnexpectedContentDictionaryHeader = (
            "UseErrorUnexpectedContentDictionaryHeader"
        )
        WriteErrorCossOriginNoCorsRequest = "WriteErrorCossOriginNoCorsRequest"
        WriteErrorDisallowedBySettings = "WriteErrorDisallowedBySettings"
        WriteErrorExpiredResponse = "WriteErrorExpiredResponse"
        WriteErrorFeatureDisabled = "WriteErrorFeatureDisabled"
        WriteErrorInsufficientResources = "WriteErrorInsufficientResources"
        WriteErrorInvalidMatchField = "WriteErrorInvalidMatchField"
        WriteErrorInvalidStructuredHeader = "WriteErrorInvalidStructuredHeader"
        WriteErrorNavigationRequest = "WriteErrorNavigationRequest"
        WriteErrorNoMatchField = "WriteErrorNoMatchField"
        WriteErrorNonListMatchDestField = "WriteErrorNonListMatchDestField"
        WriteErrorNonSecureContext = "WriteErrorNonSecureContext"
        WriteErrorNonStringIdField = "WriteErrorNonStringIdField"
        WriteErrorNonStringInMatchDestList = "WriteErrorNonStringInMatchDestList"
        WriteErrorNonStringMatchField = "WriteErrorNonStringMatchField"
        WriteErrorNonTokenTypeField = "WriteErrorNonTokenTypeField"
        WriteErrorRequestAborted = "WriteErrorRequestAborted"
        WriteErrorShuttingDown = "WriteErrorShuttingDown"
        WriteErrorTooLongIdField = "WriteErrorTooLongIdField"
        WriteErrorUnsupportedType = "WriteErrorUnsupportedType"

    class TypeAttributionReportingIssueDetails(BaseModel):
        """
                Details for issues around "Attribution Reporting API" usage.
        Explainer: https://github.com/WICG/attribution-reporting-api
        """

        violationType: "Audits.TypeAttributionReportingIssueType"
        request: Optional["Audits.TypeAffectedRequest"] = None
        violatingNodeId: Optional["DOM.TypeBackendNodeId"] = None
        invalidParameter: Optional[str] = None

    class TypeQuirksModeIssueDetails(BaseModel):
        """
                Details for issues about documents in Quirks Mode
        or Limited Quirks Mode that affects page layouting.
        """

        isLimitedQuirksMode: bool
        """
        If false, it means the document's mode is "quirks"
instead of "limited-quirks".
        """
        documentNodeId: "DOM.TypeBackendNodeId"
        url: str
        frameId: "Page.TypeFrameId"
        loaderId: "Network.TypeLoaderId"

    class TypeNavigatorUserAgentIssueDetails(BaseModel):
        url: str
        location: Optional["Audits.TypeSourceCodeLocation"] = None

    class TypeSharedDictionaryIssueDetails(BaseModel):
        sharedDictionaryError: "Audits.TypeSharedDictionaryError"
        request: "Audits.TypeAffectedRequest"

    class TypeGenericIssueErrorType(str, Enum):
        CrossOriginPortalPostMessageError = "CrossOriginPortalPostMessageError"
        FormLabelForNameError = "FormLabelForNameError"
        FormDuplicateIdForInputError = "FormDuplicateIdForInputError"
        FormInputWithNoLabelError = "FormInputWithNoLabelError"
        FormAutocompleteAttributeEmptyError = "FormAutocompleteAttributeEmptyError"
        FormEmptyIdAndNameAttributesForInputError = (
            "FormEmptyIdAndNameAttributesForInputError"
        )
        FormAriaLabelledByToNonExistingId = "FormAriaLabelledByToNonExistingId"
        FormInputAssignedAutocompleteValueToIdOrNameAttributeError = (
            "FormInputAssignedAutocompleteValueToIdOrNameAttributeError"
        )
        FormLabelHasNeitherForNorNestedInput = "FormLabelHasNeitherForNorNestedInput"
        FormLabelForMatchesNonExistingIdError = "FormLabelForMatchesNonExistingIdError"
        FormInputHasWrongButWellIntendedAutocompleteValueError = (
            "FormInputHasWrongButWellIntendedAutocompleteValueError"
        )
        ResponseWasBlockedByORB = "ResponseWasBlockedByORB"

    class TypeGenericIssueDetails(BaseModel):
        """
        Depending on the concrete errorType, different properties are set.
        """

        errorType: "Audits.TypeGenericIssueErrorType"
        """
        Issues with the same errorType are aggregated in the frontend.
        """
        frameId: Optional["Page.TypeFrameId"] = None
        violatingNodeId: Optional["DOM.TypeBackendNodeId"] = None
        violatingNodeAttribute: Optional[str] = None
        request: Optional["Audits.TypeAffectedRequest"] = None

    class TypeDeprecationIssueDetails(BaseModel):
        """
                This issue tracks information needed to print a deprecation message.
        https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/third_party/blink/renderer/core/frame/deprecation/README.md
        """

        affectedFrame: Optional["Audits.TypeAffectedFrame"] = None
        sourceCodeLocation: "Audits.TypeSourceCodeLocation"
        type: str
        """
        One of the deprecation names from third_party/blink/renderer/core/frame/deprecation/deprecation.json5
        """

    class TypeBounceTrackingIssueDetails(BaseModel):
        """
                This issue warns about sites in the redirect chain of a finished navigation
        that may be flagged as trackers and have their state cleared if they don't
        receive a user interaction. Note that in this context 'site' means eTLD+1.
        For example, if the URL `https://example.test:80/bounce` was in the
        redirect chain, the site reported would be `example.test`.
        """

        trackingSites: list[Any]

    class TypeCookieDeprecationMetadataIssueDetails(BaseModel):
        """
                This issue warns about third-party sites that are accessing cookies on the
        current page, and have been permitted due to having a global metadata grant.
        Note that in this context 'site' means eTLD+1. For example, if the URL
        `https://example.test:80/web_page` was accessing cookies, the site reported
        would be `example.test`.
        """

        allowedSites: list[Any]
        optOutPercentage: Union[float, int]
        isOptOutTopLevel: bool
        operation: "Audits.TypeCookieOperation"

    class TypeClientHintIssueReason(str, Enum):
        MetaTagAllowListInvalidOrigin = "MetaTagAllowListInvalidOrigin"
        MetaTagModifiedHTML = "MetaTagModifiedHTML"

    class TypeFederatedAuthRequestIssueDetails(BaseModel):
        federatedAuthRequestIssueReason: "Audits.TypeFederatedAuthRequestIssueReason"

    class TypeFederatedAuthRequestIssueReason(str, Enum):
        """
                Represents the failure reason when a federated authentication reason fails.
        Should be updated alongside RequestIdTokenStatus in
        third_party/blink/public/mojom/devtools/inspector_issue.mojom to include
        all cases except for success.
        """

        ShouldEmbargo = "ShouldEmbargo"
        TooManyRequests = "TooManyRequests"
        WellKnownHttpNotFound = "WellKnownHttpNotFound"
        WellKnownNoResponse = "WellKnownNoResponse"
        WellKnownInvalidResponse = "WellKnownInvalidResponse"
        WellKnownListEmpty = "WellKnownListEmpty"
        WellKnownInvalidContentType = "WellKnownInvalidContentType"
        ConfigNotInWellKnown = "ConfigNotInWellKnown"
        WellKnownTooBig = "WellKnownTooBig"
        ConfigHttpNotFound = "ConfigHttpNotFound"
        ConfigNoResponse = "ConfigNoResponse"
        ConfigInvalidResponse = "ConfigInvalidResponse"
        ConfigInvalidContentType = "ConfigInvalidContentType"
        ClientMetadataHttpNotFound = "ClientMetadataHttpNotFound"
        ClientMetadataNoResponse = "ClientMetadataNoResponse"
        ClientMetadataInvalidResponse = "ClientMetadataInvalidResponse"
        ClientMetadataInvalidContentType = "ClientMetadataInvalidContentType"
        DisabledInSettings = "DisabledInSettings"
        ErrorFetchingSignin = "ErrorFetchingSignin"
        InvalidSigninResponse = "InvalidSigninResponse"
        AccountsHttpNotFound = "AccountsHttpNotFound"
        AccountsNoResponse = "AccountsNoResponse"
        AccountsInvalidResponse = "AccountsInvalidResponse"
        AccountsListEmpty = "AccountsListEmpty"
        AccountsInvalidContentType = "AccountsInvalidContentType"
        IdTokenHttpNotFound = "IdTokenHttpNotFound"
        IdTokenNoResponse = "IdTokenNoResponse"
        IdTokenInvalidResponse = "IdTokenInvalidResponse"
        IdTokenIdpErrorResponse = "IdTokenIdpErrorResponse"
        IdTokenCrossSiteIdpErrorResponse = "IdTokenCrossSiteIdpErrorResponse"
        IdTokenInvalidRequest = "IdTokenInvalidRequest"
        IdTokenInvalidContentType = "IdTokenInvalidContentType"
        ErrorIdToken = "ErrorIdToken"
        Canceled = "Canceled"
        RpPageNotVisible = "RpPageNotVisible"
        SilentMediationFailure = "SilentMediationFailure"
        ThirdPartyCookiesBlocked = "ThirdPartyCookiesBlocked"
        NotSignedInWithIdp = "NotSignedInWithIdp"
        MissingTransientUserActivation = "MissingTransientUserActivation"
        ReplacedByButtonMode = "ReplacedByButtonMode"
        RelyingPartyOriginIsOpaque = "RelyingPartyOriginIsOpaque"
        TypeNotMatching = "TypeNotMatching"

    class TypeFederatedAuthUserInfoRequestIssueDetails(BaseModel):
        federatedAuthUserInfoRequestIssueReason: (
            "Audits.TypeFederatedAuthUserInfoRequestIssueReason"
        )

    class TypeFederatedAuthUserInfoRequestIssueReason(str, Enum):
        """
                Represents the failure reason when a getUserInfo() call fails.
        Should be updated alongside FederatedAuthUserInfoRequestResult in
        third_party/blink/public/mojom/devtools/inspector_issue.mojom.
        """

        NotSameOrigin = "NotSameOrigin"
        NotIframe = "NotIframe"
        NotPotentiallyTrustworthy = "NotPotentiallyTrustworthy"
        NoApiPermission = "NoApiPermission"
        NotSignedInWithIdp = "NotSignedInWithIdp"
        NoAccountSharingPermission = "NoAccountSharingPermission"
        InvalidConfigOrWellKnown = "InvalidConfigOrWellKnown"
        InvalidAccountsResponse = "InvalidAccountsResponse"
        NoReturningUserFromFetchedAccounts = "NoReturningUserFromFetchedAccounts"

    class TypeClientHintIssueDetails(BaseModel):
        """
                This issue tracks client hints related issues. It's used to deprecate old
        features, encourage the use of new ones, and provide general guidance.
        """

        sourceCodeLocation: "Audits.TypeSourceCodeLocation"
        clientHintIssueReason: "Audits.TypeClientHintIssueReason"

    class TypeFailedRequestInfo(BaseModel):
        url: str
        """
        The URL that failed to load.
        """
        failureMessage: str
        """
        The failure message for the failed request.
        """
        requestId: Optional["Network.TypeRequestId"] = None

    class TypeStyleSheetLoadingIssueReason(str, Enum):
        LateImportRule = "LateImportRule"
        RequestFailed = "RequestFailed"

    class TypeStylesheetLoadingIssueDetails(BaseModel):
        """
        This issue warns when a referenced stylesheet couldn't be loaded.
        """

        sourceCodeLocation: "Audits.TypeSourceCodeLocation"
        """
        Source code position that referenced the failing stylesheet.
        """
        styleSheetLoadingIssueReason: "Audits.TypeStyleSheetLoadingIssueReason"
        """
        Reason why the stylesheet couldn't be loaded.
        """
        failedRequestInfo: Optional["Audits.TypeFailedRequestInfo"] = None
        """
        Contains additional info when the failure was due to a request.
        """

    class TypePropertyRuleIssueReason(str, Enum):
        InvalidSyntax = "InvalidSyntax"
        InvalidInitialValue = "InvalidInitialValue"
        InvalidInherits = "InvalidInherits"
        InvalidName = "InvalidName"

    class TypePropertyRuleIssueDetails(BaseModel):
        """
                This issue warns about errors in property rules that lead to property
        registrations being ignored.
        """

        sourceCodeLocation: "Audits.TypeSourceCodeLocation"
        """
        Source code position of the property rule.
        """
        propertyRuleIssueReason: "Audits.TypePropertyRuleIssueReason"
        """
        Reason why the property rule was discarded.
        """
        propertyValue: Optional[str] = None
        """
        The value of the property rule property that failed to parse
        """

    class TypeInspectorIssueCode(str, Enum):
        """
                A unique identifier for the type of issue. Each type may use one of the
        optional fields in InspectorIssueDetails to convey more specific
        information about the kind of issue.
        """

        CookieIssue = "CookieIssue"
        MixedContentIssue = "MixedContentIssue"
        BlockedByResponseIssue = "BlockedByResponseIssue"
        HeavyAdIssue = "HeavyAdIssue"
        ContentSecurityPolicyIssue = "ContentSecurityPolicyIssue"
        SharedArrayBufferIssue = "SharedArrayBufferIssue"
        LowTextContrastIssue = "LowTextContrastIssue"
        CorsIssue = "CorsIssue"
        AttributionReportingIssue = "AttributionReportingIssue"
        QuirksModeIssue = "QuirksModeIssue"
        NavigatorUserAgentIssue = "NavigatorUserAgentIssue"
        GenericIssue = "GenericIssue"
        DeprecationIssue = "DeprecationIssue"
        ClientHintIssue = "ClientHintIssue"
        FederatedAuthRequestIssue = "FederatedAuthRequestIssue"
        BounceTrackingIssue = "BounceTrackingIssue"
        CookieDeprecationMetadataIssue = "CookieDeprecationMetadataIssue"
        StylesheetLoadingIssue = "StylesheetLoadingIssue"
        FederatedAuthUserInfoRequestIssue = "FederatedAuthUserInfoRequestIssue"
        PropertyRuleIssue = "PropertyRuleIssue"
        SharedDictionaryIssue = "SharedDictionaryIssue"

    class TypeInspectorIssueDetails(BaseModel):
        """
                This struct holds a list of optional fields with additional information
        specific to the kind of issue. When adding a new issue code, please also
        add a new optional field to this type.
        """

        cookieIssueDetails: Optional["Audits.TypeCookieIssueDetails"] = None
        mixedContentIssueDetails: Optional["Audits.TypeMixedContentIssueDetails"] = None
        blockedByResponseIssueDetails: Optional[
            "Audits.TypeBlockedByResponseIssueDetails"
        ] = None
        heavyAdIssueDetails: Optional["Audits.TypeHeavyAdIssueDetails"] = None
        contentSecurityPolicyIssueDetails: Optional[
            "Audits.TypeContentSecurityPolicyIssueDetails"
        ] = None
        sharedArrayBufferIssueDetails: Optional[
            "Audits.TypeSharedArrayBufferIssueDetails"
        ] = None
        lowTextContrastIssueDetails: Optional[
            "Audits.TypeLowTextContrastIssueDetails"
        ] = None
        corsIssueDetails: Optional["Audits.TypeCorsIssueDetails"] = None
        attributionReportingIssueDetails: Optional[
            "Audits.TypeAttributionReportingIssueDetails"
        ] = None
        quirksModeIssueDetails: Optional["Audits.TypeQuirksModeIssueDetails"] = None
        navigatorUserAgentIssueDetails: Optional[
            "Audits.TypeNavigatorUserAgentIssueDetails"
        ] = None
        genericIssueDetails: Optional["Audits.TypeGenericIssueDetails"] = None
        deprecationIssueDetails: Optional["Audits.TypeDeprecationIssueDetails"] = None
        clientHintIssueDetails: Optional["Audits.TypeClientHintIssueDetails"] = None
        federatedAuthRequestIssueDetails: Optional[
            "Audits.TypeFederatedAuthRequestIssueDetails"
        ] = None
        bounceTrackingIssueDetails: Optional[
            "Audits.TypeBounceTrackingIssueDetails"
        ] = None
        cookieDeprecationMetadataIssueDetails: Optional[
            "Audits.TypeCookieDeprecationMetadataIssueDetails"
        ] = None
        stylesheetLoadingIssueDetails: Optional[
            "Audits.TypeStylesheetLoadingIssueDetails"
        ] = None
        propertyRuleIssueDetails: Optional["Audits.TypePropertyRuleIssueDetails"] = None
        federatedAuthUserInfoRequestIssueDetails: Optional[
            "Audits.TypeFederatedAuthUserInfoRequestIssueDetails"
        ] = None
        sharedDictionaryIssueDetails: Optional[
            "Audits.TypeSharedDictionaryIssueDetails"
        ] = None

    TypeIssueId = TypeVar("TypeIssueId", bound=str)
    """
    A unique id for a DevTools inspector issue. Allows other entities (e.g.
exceptions, CDP message, console messages, etc.) to reference an issue.
    """

    class TypeInspectorIssue(BaseModel):
        """
        An inspector issue reported from the back-end.
        """

        code: "Audits.TypeInspectorIssueCode"
        details: "Audits.TypeInspectorIssueDetails"
        issueId: Optional["Audits.TypeIssueId"] = None
        """
        A unique id for this issue. May be omitted if no other entity (e.g.
exception, CDP message, etc.) is referencing this issue.
        """


class Autofill:
    """
    Defines commands and events for Autofill.
    """

    class TypeCreditCard(BaseModel):
        number: str
        """
        16-digit credit card number.
        """
        name: str
        """
        Name of the credit card owner.
        """
        expiryMonth: str
        """
        2-digit expiry month.
        """
        expiryYear: str
        """
        4-digit expiry year.
        """
        cvc: str
        """
        3-digit card verification code.
        """

    class TypeAddressField(BaseModel):
        name: str
        """
        address field name, for example GIVEN_NAME.
        """
        value: str
        """
        address field value, for example Jon Doe.
        """

    class TypeAddressFields(BaseModel):
        """
        A list of address fields.
        """

        fields: list[Any]

    class TypeAddress(BaseModel):
        fields: list[Any]
        """
        fields and values defining an address.
        """

    class TypeAddressUI(BaseModel):
        """
                Defines how an address can be displayed like in chrome://settings/addresses.
        Address UI is a two dimensional array, each inner array is an "address information line", and when rendered in a UI surface should be displayed as such.
        The following address UI for instance:
        [[{name: "GIVE_NAME", value: "Jon"}, {name: "FAMILY_NAME", value: "Doe"}], [{name: "CITY", value: "Munich"}, {name: "ZIP", value: "81456"}]]
        should allow the receiver to render:
        Jon Doe
        Munich 81456
        """

        addressFields: list[Any]
        """
        A two dimension array containing the representation of values from an address profile.
        """

    class TypeFillingStrategy(str, Enum):
        """
        Specified whether a filled field was done so by using the html autocomplete attribute or autofill heuristics.
        """

        autocompleteAttribute = "autocompleteAttribute"
        autofillInferred = "autofillInferred"

    class TypeFilledField(BaseModel):
        htmlType: str
        """
        The type of the field, e.g text, password etc.
        """
        id: str
        """
        the html id
        """
        name: str
        """
        the html name
        """
        value: str
        """
        the field value
        """
        autofillType: str
        """
        The actual field type, e.g FAMILY_NAME
        """
        fillingStrategy: "Autofill.TypeFillingStrategy"
        """
        The filling strategy
        """
        frameId: "Page.TypeFrameId"
        """
        The frame the field belongs to
        """
        fieldId: "DOM.TypeBackendNodeId"
        """
        The form field's DOM node
        """


class BackgroundService:
    """
    Defines events for background web platform features.
    """

    class TypeServiceName(str, Enum):
        """
                The Background Service that will be associated with the commands/events.
        Every Background Service operates independently, but they share the same
        API.
        """

        backgroundFetch = "backgroundFetch"
        backgroundSync = "backgroundSync"
        pushMessaging = "pushMessaging"
        notifications = "notifications"
        paymentHandler = "paymentHandler"
        periodicBackgroundSync = "periodicBackgroundSync"

    class TypeEventMetadata(BaseModel):
        """
        A key-value pair for additional event information to pass along.
        """

        key: str
        value: str

    class TypeBackgroundServiceEvent(BaseModel):
        timestamp: "Network.TypeTimeSinceEpoch"
        """
        Timestamp of the event (in seconds).
        """
        origin: str
        """
        The origin this event belongs to.
        """
        serviceWorkerRegistrationId: "ServiceWorker.TypeRegistrationID"
        """
        The Service Worker ID that initiated the event.
        """
        service: "BackgroundService.TypeServiceName"
        """
        The Background Service this event belongs to.
        """
        eventName: str
        """
        A description of the event.
        """
        instanceId: str
        """
        An identifier that groups related events together.
        """
        eventMetadata: list[Any]
        """
        A list of event-specific information.
        """
        storageKey: str
        """
        Storage key this event belongs to.
        """


class Browser:
    """
    The Browser domain defines methods and events for browser managing.
    """

    TypeBrowserContextID = TypeVar("TypeBrowserContextID", bound=str)

    TypeWindowID = TypeVar("TypeWindowID", bound=Union[float, int])

    class TypeWindowState(str, Enum):
        """
        The state of the browser window.
        """

        normal = "normal"
        minimized = "minimized"
        maximized = "maximized"
        fullscreen = "fullscreen"

    class TypeBounds(BaseModel):
        """
        Browser window bounds information
        """

        left: Optional[Union[float, int]] = None
        """
        The offset from the left edge of the screen to the window in pixels.
        """
        top: Optional[Union[float, int]] = None
        """
        The offset from the top edge of the screen to the window in pixels.
        """
        width: Optional[Union[float, int]] = None
        """
        The window width in pixels.
        """
        height: Optional[Union[float, int]] = None
        """
        The window height in pixels.
        """
        windowState: Optional["Browser.TypeWindowState"] = None
        """
        The window state. Default to normal.
        """

    class TypePermissionType(str, Enum):
        accessibilityEvents = "accessibilityEvents"
        audioCapture = "audioCapture"
        backgroundSync = "backgroundSync"
        backgroundFetch = "backgroundFetch"
        capturedSurfaceControl = "capturedSurfaceControl"
        clipboardReadWrite = "clipboardReadWrite"
        clipboardSanitizedWrite = "clipboardSanitizedWrite"
        displayCapture = "displayCapture"
        durableStorage = "durableStorage"
        flash = "flash"
        geolocation = "geolocation"
        idleDetection = "idleDetection"
        localFonts = "localFonts"
        midi = "midi"
        midiSysex = "midiSysex"
        nfc = "nfc"
        notifications = "notifications"
        paymentHandler = "paymentHandler"
        periodicBackgroundSync = "periodicBackgroundSync"
        protectedMediaIdentifier = "protectedMediaIdentifier"
        sensors = "sensors"
        storageAccess = "storageAccess"
        speakerSelection = "speakerSelection"
        topLevelStorageAccess = "topLevelStorageAccess"
        videoCapture = "videoCapture"
        videoCapturePanTiltZoom = "videoCapturePanTiltZoom"
        wakeLockScreen = "wakeLockScreen"
        wakeLockSystem = "wakeLockSystem"
        windowManagement = "windowManagement"

    class TypePermissionSetting(str, Enum):
        granted = "granted"
        denied = "denied"
        prompt = "prompt"

    class TypePermissionDescriptor(BaseModel):
        """
                Definition of PermissionDescriptor defined in the Permissions API:
        https://w3c.github.io/permissions/#dom-permissiondescriptor.
        """

        name: str
        """
        Name of permission.
See https://cs.chromium.org/chromium/src/third_party/blink/renderer/modules/permissions/permission_descriptor.idl for valid permission names.
        """
        sysex: Optional[bool] = None
        """
        For "midi" permission, may also specify sysex control.
        """
        userVisibleOnly: Optional[bool] = None
        """
        For "push" permission, may specify userVisibleOnly.
Note that userVisibleOnly = true is the only currently supported type.
        """
        allowWithoutSanitization: Optional[bool] = None
        """
        For "clipboard" permission, may specify allowWithoutSanitization.
        """
        panTiltZoom: Optional[bool] = None
        """
        For "camera" permission, may specify panTiltZoom.
        """

    class TypeBrowserCommandId(str, Enum):
        """
        Browser command ids used by executeBrowserCommand.
        """

        openTabSearch = "openTabSearch"
        closeTabSearch = "closeTabSearch"

    class TypeBucket(BaseModel):
        """
        Chrome histogram bucket.
        """

        low: Union[float, int]
        """
        Minimum value (inclusive).
        """
        high: Union[float, int]
        """
        Maximum value (exclusive).
        """
        count: Union[float, int]
        """
        Number of samples.
        """

    class TypeHistogram(BaseModel):
        """
        Chrome histogram.
        """

        name: str
        """
        Name.
        """
        sum: Union[float, int]
        """
        Sum of sample values.
        """
        count: Union[float, int]
        """
        Total number of samples.
        """
        buckets: list[Any]
        """
        Buckets.
        """


class CSS:
    """
        This domain exposes CSS read/write operations. All CSS objects (stylesheets, rules, and styles)
    have an associated `id` used in subsequent operations on the related object. Each object type has
    a specific `id` structure, and those are not interchangeable between objects of different kinds.
    CSS objects can be loaded using the `get*ForNode()` calls (which accept a DOM node id). A client
    can also keep track of stylesheets via the `styleSheetAdded`/`styleSheetRemoved` events and
    subsequently load the required stylesheet contents using the `getStyleSheet[Text]()` methods.
    """

    TypeStyleSheetId = TypeVar("TypeStyleSheetId", bound=str)

    class TypeStyleSheetOrigin(str, Enum):
        """
                Stylesheet type: "injected" for stylesheets injected via extension, "user-agent" for user-agent
        stylesheets, "inspector" for stylesheets created by the inspector (i.e. those holding the "via
        inspector" rules), "regular" for regular stylesheets.
        """

        injected = "injected"
        user_agent = "user-agent"
        inspector = "inspector"
        regular = "regular"

    class TypePseudoElementMatches(BaseModel):
        """
        CSS rule collection for a single pseudo style.
        """

        pseudoType: "DOM.TypePseudoType"
        """
        Pseudo element type.
        """
        pseudoIdentifier: Optional[str] = None
        """
        Pseudo element custom ident.
        """
        matches: list[Any]
        """
        Matches of CSS rules applicable to the pseudo style.
        """

    class TypeInheritedStyleEntry(BaseModel):
        """
        Inherited CSS rule collection from ancestor node.
        """

        inlineStyle: Optional["CSS.TypeCSSStyle"] = None
        """
        The ancestor node's inline style, if any, in the style inheritance chain.
        """
        matchedCSSRules: list[Any]
        """
        Matches of CSS rules matching the ancestor node in the style inheritance chain.
        """

    class TypeInheritedPseudoElementMatches(BaseModel):
        """
        Inherited pseudo element matches from pseudos of an ancestor node.
        """

        pseudoElements: list[Any]
        """
        Matches of pseudo styles from the pseudos of an ancestor node.
        """

    class TypeRuleMatch(BaseModel):
        """
        Match data for a CSS rule.
        """

        rule: "CSS.TypeCSSRule"
        """
        CSS rule in the match.
        """
        matchingSelectors: list[Any]
        """
        Matching selector indices in the rule's selectorList selectors (0-based).
        """

    class TypeValue(BaseModel):
        """
        Data for a simple selector (these are delimited by commas in a selector list).
        """

        text: str
        """
        Value text.
        """
        range: Optional["CSS.TypeSourceRange"] = None
        """
        Value range in the underlying resource (if available).
        """
        specificity: Optional["CSS.TypeSpecificity"] = None
        """
        Specificity of the selector.
        """

    class TypeSpecificity(BaseModel):
        """
                Specificity:
        https://drafts.csswg.org/selectors/#specificity-rules
        """

        a: Union[float, int]
        """
        The a component, which represents the number of ID selectors.
        """
        b: Union[float, int]
        """
        The b component, which represents the number of class selectors, attributes selectors, and
pseudo-classes.
        """
        c: Union[float, int]
        """
        The c component, which represents the number of type selectors and pseudo-elements.
        """

    class TypeSelectorList(BaseModel):
        """
        Selector list data.
        """

        selectors: list[Any]
        """
        Selectors in the list.
        """
        text: str
        """
        Rule selector text.
        """

    class TypeCSSStyleSheetHeader(BaseModel):
        """
        CSS stylesheet metainformation.
        """

        styleSheetId: "CSS.TypeStyleSheetId"
        """
        The stylesheet identifier.
        """
        frameId: "Page.TypeFrameId"
        """
        Owner frame identifier.
        """
        sourceURL: str
        """
        Stylesheet resource URL. Empty if this is a constructed stylesheet created using
new CSSStyleSheet() (but non-empty if this is a constructed stylesheet imported
as a CSS module script).
        """
        sourceMapURL: Optional[str] = None
        """
        URL of source map associated with the stylesheet (if any).
        """
        origin: "CSS.TypeStyleSheetOrigin"
        """
        Stylesheet origin.
        """
        title: str
        """
        Stylesheet title.
        """
        ownerNode: Optional["DOM.TypeBackendNodeId"] = None
        """
        The backend id for the owner node of the stylesheet.
        """
        disabled: bool
        """
        Denotes whether the stylesheet is disabled.
        """
        hasSourceURL: Optional[bool] = None
        """
        Whether the sourceURL field value comes from the sourceURL comment.
        """
        isInline: bool
        """
        Whether this stylesheet is created for STYLE tag by parser. This flag is not set for
document.written STYLE tags.
        """
        isMutable: bool
        """
        Whether this stylesheet is mutable. Inline stylesheets become mutable
after they have been modified via CSSOM API.
`<link>` element's stylesheets become mutable only if DevTools modifies them.
Constructed stylesheets (new CSSStyleSheet()) are mutable immediately after creation.
        """
        isConstructed: bool
        """
        True if this stylesheet is created through new CSSStyleSheet() or imported as a
CSS module script.
        """
        startLine: Union[float, int]
        """
        Line offset of the stylesheet within the resource (zero based).
        """
        startColumn: Union[float, int]
        """
        Column offset of the stylesheet within the resource (zero based).
        """
        length: Union[float, int]
        """
        Size of the content (in characters).
        """
        endLine: Union[float, int]
        """
        Line offset of the end of the stylesheet within the resource (zero based).
        """
        endColumn: Union[float, int]
        """
        Column offset of the end of the stylesheet within the resource (zero based).
        """
        loadingFailed: Optional[bool] = None
        """
        If the style sheet was loaded from a network resource, this indicates when the resource failed to load
        """

    class TypeCSSRule(BaseModel):
        """
        CSS rule representation.
        """

        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        The css style sheet identifier (absent for user agent stylesheet and user-specified
stylesheet rules) this rule came from.
        """
        selectorList: "CSS.TypeSelectorList"
        """
        Rule selector data.
        """
        nestingSelectors: Optional[list[Any]] = None
        """
        Array of selectors from ancestor style rules, sorted by distance from the current rule.
        """
        origin: "CSS.TypeStyleSheetOrigin"
        """
        Parent stylesheet's origin.
        """
        style: "CSS.TypeCSSStyle"
        """
        Associated style declaration.
        """
        media: Optional[list[Any]] = None
        """
        Media list array (for rules involving media queries). The array enumerates media queries
starting with the innermost one, going outwards.
        """
        containerQueries: Optional[list[Any]] = None
        """
        Container query list array (for rules involving container queries).
The array enumerates container queries starting with the innermost one, going outwards.
        """
        supports: Optional[list[Any]] = None
        """
        @supports CSS at-rule array.
The array enumerates @supports at-rules starting with the innermost one, going outwards.
        """
        layers: Optional[list[Any]] = None
        """
        Cascade layer array. Contains the layer hierarchy that this rule belongs to starting
with the innermost layer and going outwards.
        """
        scopes: Optional[list[Any]] = None
        """
        @scope CSS at-rule array.
The array enumerates @scope at-rules starting with the innermost one, going outwards.
        """
        ruleTypes: Optional[list[Any]] = None
        """
        The array keeps the types of ancestor CSSRules from the innermost going outwards.
        """

    class TypeCSSRuleType(str, Enum):
        """
                Enum indicating the type of a CSS rule, used to represent the order of a style rule's ancestors.
        This list only contains rule types that are collected during the ancestor rule collection.
        """

        MediaRule = "MediaRule"
        SupportsRule = "SupportsRule"
        ContainerRule = "ContainerRule"
        LayerRule = "LayerRule"
        ScopeRule = "ScopeRule"
        StyleRule = "StyleRule"

    class TypeRuleUsage(BaseModel):
        """
        CSS coverage information.
        """

        styleSheetId: "CSS.TypeStyleSheetId"
        """
        The css style sheet identifier (absent for user agent stylesheet and user-specified
stylesheet rules) this rule came from.
        """
        startOffset: Union[float, int]
        """
        Offset of the start of the rule (including selector) from the beginning of the stylesheet.
        """
        endOffset: Union[float, int]
        """
        Offset of the end of the rule body from the beginning of the stylesheet.
        """
        used: bool
        """
        Indicates whether the rule was actually used by some element in the page.
        """

    class TypeSourceRange(BaseModel):
        """
        Text range within a resource. All numbers are zero-based.
        """

        startLine: Union[float, int]
        """
        Start line of range.
        """
        startColumn: Union[float, int]
        """
        Start column of range (inclusive).
        """
        endLine: Union[float, int]
        """
        End line of range
        """
        endColumn: Union[float, int]
        """
        End column of range (exclusive).
        """

    class TypeShorthandEntry(BaseModel):
        name: str
        """
        Shorthand name.
        """
        value: str
        """
        Shorthand value.
        """
        important: Optional[bool] = None
        """
        Whether the property has "!important" annotation (implies `false` if absent).
        """

    class TypeCSSComputedStyleProperty(BaseModel):
        name: str
        """
        Computed style property name.
        """
        value: str
        """
        Computed style property value.
        """

    class TypeCSSStyle(BaseModel):
        """
        CSS style representation.
        """

        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        The css style sheet identifier (absent for user agent stylesheet and user-specified
stylesheet rules) this rule came from.
        """
        cssProperties: list[Any]
        """
        CSS properties in the style.
        """
        shorthandEntries: list[Any]
        """
        Computed values for all shorthands found in the style.
        """
        cssText: Optional[str] = None
        """
        Style declaration text (if available).
        """
        range: Optional["CSS.TypeSourceRange"] = None
        """
        Style declaration range in the enclosing stylesheet (if available).
        """

    class TypeCSSProperty(BaseModel):
        """
        CSS property declaration data.
        """

        name: str
        """
        The property name.
        """
        value: str
        """
        The property value.
        """
        important: Optional[bool] = None
        """
        Whether the property has "!important" annotation (implies `false` if absent).
        """
        implicit: Optional[bool] = None
        """
        Whether the property is implicit (implies `false` if absent).
        """
        text: Optional[str] = None
        """
        The full property text as specified in the style.
        """
        parsedOk: Optional[bool] = None
        """
        Whether the property is understood by the browser (implies `true` if absent).
        """
        disabled: Optional[bool] = None
        """
        Whether the property is disabled by the user (present for source-based properties only).
        """
        range: Optional["CSS.TypeSourceRange"] = None
        """
        The entire property range in the enclosing style declaration (if available).
        """
        longhandProperties: Optional[list[Any]] = None
        """
        Parsed longhand components of this property if it is a shorthand.
This field will be empty if the given property is not a shorthand.
        """

    class TypeCSSMedia(BaseModel):
        """
        CSS media rule descriptor.
        """

        text: str
        """
        Media query text.
        """
        source: Literal["mediaRule", "importRule", "linkedSheet", "inlineSheet"]
        """
        Source of the media query: "mediaRule" if specified by a @media rule, "importRule" if
specified by an @import rule, "linkedSheet" if specified by a "media" attribute in a linked
stylesheet's LINK tag, "inlineSheet" if specified by a "media" attribute in an inline
stylesheet's STYLE tag.
        """
        sourceURL: Optional[str] = None
        """
        URL of the document containing the media query description.
        """
        range: Optional["CSS.TypeSourceRange"] = None
        """
        The associated rule (@media or @import) header range in the enclosing stylesheet (if
available).
        """
        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        Identifier of the stylesheet containing this object (if exists).
        """
        mediaList: Optional[list[Any]] = None
        """
        Array of media queries.
        """

    class TypeMediaQuery(BaseModel):
        """
        Media query descriptor.
        """

        expressions: list[Any]
        """
        Array of media query expressions.
        """
        active: bool
        """
        Whether the media query condition is satisfied.
        """

    class TypeMediaQueryExpression(BaseModel):
        """
        Media query expression descriptor.
        """

        value: Union[float, int]
        """
        Media query expression value.
        """
        unit: str
        """
        Media query expression units.
        """
        feature: str
        """
        Media query expression feature.
        """
        valueRange: Optional["CSS.TypeSourceRange"] = None
        """
        The associated range of the value text in the enclosing stylesheet (if available).
        """
        computedLength: Optional[Union[float, int]] = None
        """
        Computed length of media query expression (if applicable).
        """

    class TypeCSSContainerQuery(BaseModel):
        """
        CSS container query rule descriptor.
        """

        text: str
        """
        Container query text.
        """
        range: Optional["CSS.TypeSourceRange"] = None
        """
        The associated rule header range in the enclosing stylesheet (if
available).
        """
        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        Identifier of the stylesheet containing this object (if exists).
        """
        name: Optional[str] = None
        """
        Optional name for the container.
        """
        physicalAxes: Optional["DOM.TypePhysicalAxes"] = None
        """
        Optional physical axes queried for the container.
        """
        logicalAxes: Optional["DOM.TypeLogicalAxes"] = None
        """
        Optional logical axes queried for the container.
        """

    class TypeCSSSupports(BaseModel):
        """
        CSS Supports at-rule descriptor.
        """

        text: str
        """
        Supports rule text.
        """
        active: bool
        """
        Whether the supports condition is satisfied.
        """
        range: Optional["CSS.TypeSourceRange"] = None
        """
        The associated rule header range in the enclosing stylesheet (if
available).
        """
        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        Identifier of the stylesheet containing this object (if exists).
        """

    class TypeCSSScope(BaseModel):
        """
        CSS Scope at-rule descriptor.
        """

        text: str
        """
        Scope rule text.
        """
        range: Optional["CSS.TypeSourceRange"] = None
        """
        The associated rule header range in the enclosing stylesheet (if
available).
        """
        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        Identifier of the stylesheet containing this object (if exists).
        """

    class TypeCSSLayer(BaseModel):
        """
        CSS Layer at-rule descriptor.
        """

        text: str
        """
        Layer name.
        """
        range: Optional["CSS.TypeSourceRange"] = None
        """
        The associated rule header range in the enclosing stylesheet (if
available).
        """
        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        Identifier of the stylesheet containing this object (if exists).
        """

    class TypeCSSLayerData(BaseModel):
        """
        CSS Layer data.
        """

        name: str
        """
        Layer name.
        """
        subLayers: Optional[list[Any]] = None
        """
        Direct sub-layers
        """
        order: Union[float, int]
        """
        Layer order. The order determines the order of the layer in the cascade order.
A higher number has higher priority in the cascade order.
        """

    class TypePlatformFontUsage(BaseModel):
        """
        Information about amount of glyphs that were rendered with given font.
        """

        familyName: str
        """
        Font's family name reported by platform.
        """
        postScriptName: str
        """
        Font's PostScript name reported by platform.
        """
        isCustomFont: bool
        """
        Indicates if the font was downloaded or resolved locally.
        """
        glyphCount: Union[float, int]
        """
        Amount of glyphs that were rendered with this font.
        """

    class TypeFontVariationAxis(BaseModel):
        """
        Information about font variation axes for variable fonts
        """

        tag: str
        """
        The font-variation-setting tag (a.k.a. "axis tag").
        """
        name: str
        """
        Human-readable variation name in the default language (normally, "en").
        """
        minValue: Union[float, int]
        """
        The minimum value (inclusive) the font supports for this tag.
        """
        maxValue: Union[float, int]
        """
        The maximum value (inclusive) the font supports for this tag.
        """
        defaultValue: Union[float, int]
        """
        The default value.
        """

    class TypeFontFace(BaseModel):
        """
                Properties of a web font: https://www.w3.org/TR/2008/REC-CSS2-20080411/fonts.html#font-descriptions
        and additional information such as platformFontFamily and fontVariationAxes.
        """

        fontFamily: str
        """
        The font-family.
        """
        fontStyle: str
        """
        The font-style.
        """
        fontVariant: str
        """
        The font-variant.
        """
        fontWeight: str
        """
        The font-weight.
        """
        fontStretch: str
        """
        The font-stretch.
        """
        fontDisplay: str
        """
        The font-display.
        """
        unicodeRange: str
        """
        The unicode-range.
        """
        src: str
        """
        The src.
        """
        platformFontFamily: str
        """
        The resolved platform font family
        """
        fontVariationAxes: Optional[list[Any]] = None
        """
        Available variation settings (a.k.a. "axes").
        """

    class TypeCSSTryRule(BaseModel):
        """
        CSS try rule representation.
        """

        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        The css style sheet identifier (absent for user agent stylesheet and user-specified
stylesheet rules) this rule came from.
        """
        origin: "CSS.TypeStyleSheetOrigin"
        """
        Parent stylesheet's origin.
        """
        style: "CSS.TypeCSSStyle"
        """
        Associated style declaration.
        """

    class TypeCSSPositionFallbackRule(BaseModel):
        """
        CSS position-fallback rule representation.
        """

        name: "CSS.TypeValue"
        tryRules: list[Any]
        """
        List of keyframes.
        """

    class TypeCSSPositionTryRule(BaseModel):
        """
        CSS @position-try rule representation.
        """

        name: "CSS.TypeValue"
        """
        The prelude dashed-ident name
        """
        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        The css style sheet identifier (absent for user agent stylesheet and user-specified
stylesheet rules) this rule came from.
        """
        origin: "CSS.TypeStyleSheetOrigin"
        """
        Parent stylesheet's origin.
        """
        style: "CSS.TypeCSSStyle"
        """
        Associated style declaration.
        """

    class TypeCSSKeyframesRule(BaseModel):
        """
        CSS keyframes rule representation.
        """

        animationName: "CSS.TypeValue"
        """
        Animation name.
        """
        keyframes: list[Any]
        """
        List of keyframes.
        """

    class TypeCSSPropertyRegistration(BaseModel):
        """
        Representation of a custom property registration through CSS.registerProperty
        """

        propertyName: str
        initialValue: Optional["CSS.TypeValue"] = None
        inherits: bool
        syntax: str

    class TypeCSSFontPaletteValuesRule(BaseModel):
        """
        CSS font-palette-values rule representation.
        """

        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        The css style sheet identifier (absent for user agent stylesheet and user-specified
stylesheet rules) this rule came from.
        """
        origin: "CSS.TypeStyleSheetOrigin"
        """
        Parent stylesheet's origin.
        """
        fontPaletteName: "CSS.TypeValue"
        """
        Associated font palette name.
        """
        style: "CSS.TypeCSSStyle"
        """
        Associated style declaration.
        """

    class TypeCSSPropertyRule(BaseModel):
        """
        CSS property at-rule representation.
        """

        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        The css style sheet identifier (absent for user agent stylesheet and user-specified
stylesheet rules) this rule came from.
        """
        origin: "CSS.TypeStyleSheetOrigin"
        """
        Parent stylesheet's origin.
        """
        propertyName: "CSS.TypeValue"
        """
        Associated property name.
        """
        style: "CSS.TypeCSSStyle"
        """
        Associated style declaration.
        """

    class TypeCSSKeyframeRule(BaseModel):
        """
        CSS keyframe rule representation.
        """

        styleSheetId: Optional["CSS.TypeStyleSheetId"] = None
        """
        The css style sheet identifier (absent for user agent stylesheet and user-specified
stylesheet rules) this rule came from.
        """
        origin: "CSS.TypeStyleSheetOrigin"
        """
        Parent stylesheet's origin.
        """
        keyText: "CSS.TypeValue"
        """
        Associated key text.
        """
        style: "CSS.TypeCSSStyle"
        """
        Associated style declaration.
        """

    class TypeStyleDeclarationEdit(BaseModel):
        """
        A descriptor of operation to mutate style declaration text.
        """

        styleSheetId: "CSS.TypeStyleSheetId"
        """
        The css style sheet identifier.
        """
        range: "CSS.TypeSourceRange"
        """
        The range of the style text in the enclosing stylesheet.
        """
        text: str
        """
        New style text.
        """


class CacheStorage:
    TypeCacheId = TypeVar("TypeCacheId", bound=str)
    """
    Unique identifier of the Cache object.
    """

    class TypeCachedResponseType(str, Enum):
        """
        type of HTTP response cached
        """

        basic = "basic"
        cors = "cors"
        default = "default"
        error = "error"
        opaqueResponse = "opaqueResponse"
        opaqueRedirect = "opaqueRedirect"

    class TypeDataEntry(BaseModel):
        """
        Data entry.
        """

        requestURL: str
        """
        Request URL.
        """
        requestMethod: str
        """
        Request method.
        """
        requestHeaders: list[Any]
        """
        Request headers
        """
        responseTime: Union[float, int]
        """
        Number of seconds since epoch.
        """
        responseStatus: Union[float, int]
        """
        HTTP response status code.
        """
        responseStatusText: str
        """
        HTTP response status text.
        """
        responseType: "CacheStorage.TypeCachedResponseType"
        """
        HTTP response type
        """
        responseHeaders: list[Any]
        """
        Response headers
        """

    class TypeCache(BaseModel):
        """
        Cache identifier.
        """

        cacheId: "CacheStorage.TypeCacheId"
        """
        An opaque unique id of the cache.
        """
        securityOrigin: str
        """
        Security origin of the cache.
        """
        storageKey: str
        """
        Storage key of the cache.
        """
        storageBucket: Optional["Storage.TypeStorageBucket"] = None
        """
        Storage bucket of the cache.
        """
        cacheName: str
        """
        The name of the cache.
        """

    class TypeHeader(BaseModel):
        name: str
        value: str

    class TypeCachedResponse(BaseModel):
        """
        Cached response
        """

        body: str
        """
        Entry content, base64-encoded. (Encoded as a base64 string when passed over JSON)
        """


class Cast:
    """
        A domain for interacting with Cast, Presentation API, and Remote Playback API
    functionalities.
    """

    class TypeSink(BaseModel):
        name: str
        id: str
        session: Optional[str] = None
        """
        Text describing the current session. Present only if there is an active
session on the sink.
        """


class DOM:
    """
        This domain exposes DOM read/write operations. Each DOM Node is represented with its mirror object
    that has an `id`. This `id` can be used to get additional information on the Node, resolve it into
    the JavaScript object wrapper, etc. It is important that client receives DOM events only for the
    nodes that are known to the client. Backend keeps track of the nodes that were sent to the client
    and never sends the same node twice. It is client's responsibility to collect information about
    the nodes that were sent to the client. Note that `iframe` owner elements will return
    corresponding document elements as their child nodes.
    """

    TypeNodeId = TypeVar("TypeNodeId", bound=Union[float, int])
    """
    Unique DOM node identifier.
    """

    TypeBackendNodeId = TypeVar("TypeBackendNodeId", bound=Union[float, int])
    """
    Unique DOM node identifier used to reference a node that may not have been pushed to the
front-end.
    """

    class TypeBackendNode(BaseModel):
        """
        Backend node with a friendly name.
        """

        nodeType: Union[float, int]
        """
        `Node`'s nodeType.
        """
        nodeName: str
        """
        `Node`'s nodeName.
        """
        backendNodeId: "DOM.TypeBackendNodeId"

    class TypePseudoType(str, Enum):
        """
        Pseudo element type.
        """

        first_line = "first-line"
        first_letter = "first-letter"
        before = "before"
        after = "after"
        marker = "marker"
        backdrop = "backdrop"
        selection = "selection"
        search_text = "search-text"
        target_text = "target-text"
        spelling_error = "spelling-error"
        grammar_error = "grammar-error"
        highlight = "highlight"
        first_line_inherited = "first-line-inherited"
        scroll_marker = "scroll-marker"
        scroll_marker_group = "scroll-marker-group"
        scrollbar = "scrollbar"
        scrollbar_thumb = "scrollbar-thumb"
        scrollbar_button = "scrollbar-button"
        scrollbar_track = "scrollbar-track"
        scrollbar_track_piece = "scrollbar-track-piece"
        scrollbar_corner = "scrollbar-corner"
        resizer = "resizer"
        input_list_button = "input-list-button"
        view_transition = "view-transition"
        view_transition_group = "view-transition-group"
        view_transition_image_pair = "view-transition-image-pair"
        view_transition_old = "view-transition-old"
        view_transition_new = "view-transition-new"

    class TypeShadowRootType(str, Enum):
        """
        Shadow root type.
        """

        user_agent = "user-agent"
        open = "open"
        closed = "closed"

    class TypeCompatibilityMode(str, Enum):
        """
        Document compatibility mode.
        """

        QuirksMode = "QuirksMode"
        LimitedQuirksMode = "LimitedQuirksMode"
        NoQuirksMode = "NoQuirksMode"

    class TypePhysicalAxes(str, Enum):
        """
        ContainerSelector physical axes
        """

        Horizontal = "Horizontal"
        Vertical = "Vertical"
        Both = "Both"

    class TypeLogicalAxes(str, Enum):
        """
        ContainerSelector logical axes
        """

        Inline = "Inline"
        Block = "Block"
        Both = "Both"

    class TypeScrollOrientation(str, Enum):
        """
        Physical scroll orientation
        """

        horizontal = "horizontal"
        vertical = "vertical"

    class TypeNode(BaseModel):
        """
                DOM interaction is implemented in terms of mirror objects that represent the actual DOM nodes.
        DOMNode is a base node mirror type.
        """

        nodeId: "DOM.TypeNodeId"
        """
        Node identifier that is passed into the rest of the DOM messages as the `nodeId`. Backend
will only push node with given `id` once. It is aware of all requested nodes and will only
fire DOM events for nodes known to the client.
        """
        parentId: Optional["DOM.TypeNodeId"] = None
        """
        The id of the parent node if any.
        """
        backendNodeId: "DOM.TypeBackendNodeId"
        """
        The BackendNodeId for this node.
        """
        nodeType: Union[float, int]
        """
        `Node`'s nodeType.
        """
        nodeName: str
        """
        `Node`'s nodeName.
        """
        localName: str
        """
        `Node`'s localName.
        """
        nodeValue: str
        """
        `Node`'s nodeValue.
        """
        childNodeCount: Optional[Union[float, int]] = None
        """
        Child count for `Container` nodes.
        """
        children: Optional[list[Any]] = None
        """
        Child nodes of this node when requested with children.
        """
        attributes: Optional[list[Any]] = None
        """
        Attributes of the `Element` node in the form of flat array `[name1, value1, name2, value2]`.
        """
        documentURL: Optional[str] = None
        """
        Document URL that `Document` or `FrameOwner` node points to.
        """
        baseURL: Optional[str] = None
        """
        Base URL that `Document` or `FrameOwner` node uses for URL completion.
        """
        publicId: Optional[str] = None
        """
        `DocumentType`'s publicId.
        """
        systemId: Optional[str] = None
        """
        `DocumentType`'s systemId.
        """
        internalSubset: Optional[str] = None
        """
        `DocumentType`'s internalSubset.
        """
        xmlVersion: Optional[str] = None
        """
        `Document`'s XML version in case of XML documents.
        """
        name: Optional[str] = None
        """
        `Attr`'s name.
        """
        value: Optional[str] = None
        """
        `Attr`'s value.
        """
        pseudoType: Optional["DOM.TypePseudoType"] = None
        """
        Pseudo element type for this node.
        """
        pseudoIdentifier: Optional[str] = None
        """
        Pseudo element identifier for this node. Only present if there is a
valid pseudoType.
        """
        shadowRootType: Optional["DOM.TypeShadowRootType"] = None
        """
        Shadow root type.
        """
        frameId: Optional["Page.TypeFrameId"] = None
        """
        Frame ID for frame owner elements.
        """
        contentDocument: Optional["DOM.TypeNode"] = None
        """
        Content document for frame owner elements.
        """
        shadowRoots: Optional[list[Any]] = None
        """
        Shadow root list for given element host.
        """
        templateContent: Optional["DOM.TypeNode"] = None
        """
        Content document fragment for template elements.
        """
        pseudoElements: Optional[list[Any]] = None
        """
        Pseudo elements associated with this node.
        """
        importedDocument: Optional["DOM.TypeNode"] = None
        """
        Deprecated, as the HTML Imports API has been removed (crbug.com/937746).
This property used to return the imported document for the HTMLImport links.
The property is always undefined now.
        """
        distributedNodes: Optional[list[Any]] = None
        """
        Distributed nodes for given insertion point.
        """
        isSVG: Optional[bool] = None
        """
        Whether the node is SVG.
        """
        compatibilityMode: Optional["DOM.TypeCompatibilityMode"] = None
        assignedSlot: Optional["DOM.TypeBackendNode"] = None

    class TypeRGBA(BaseModel):
        """
        A structure holding an RGBA color.
        """

        r: Union[float, int]
        """
        The red component, in the [0-255] range.
        """
        g: Union[float, int]
        """
        The green component, in the [0-255] range.
        """
        b: Union[float, int]
        """
        The blue component, in the [0-255] range.
        """
        a: Optional[Union[float, int]] = None
        """
        The alpha component, in the [0-1] range (default: 1).
        """

    TypeQuad = TypeVar("TypeQuad", bound=list[Any])
    """
    An array of quad vertices, x immediately followed by y for each point, points clock-wise.
    """

    class TypeBoxModel(BaseModel):
        """
        Box model.
        """

        content: "DOM.TypeQuad"
        """
        Content box
        """
        padding: "DOM.TypeQuad"
        """
        Padding box
        """
        border: "DOM.TypeQuad"
        """
        Border box
        """
        margin: "DOM.TypeQuad"
        """
        Margin box
        """
        width: Union[float, int]
        """
        Node width
        """
        height: Union[float, int]
        """
        Node height
        """
        shapeOutside: Optional["DOM.TypeShapeOutsideInfo"] = None
        """
        Shape outside coordinates
        """

    class TypeShapeOutsideInfo(BaseModel):
        """
        CSS Shape Outside details.
        """

        bounds: "DOM.TypeQuad"
        """
        Shape bounds
        """
        shape: list[Any]
        """
        Shape coordinate details
        """
        marginShape: list[Any]
        """
        Margin shape bounds
        """

    class TypeRect(BaseModel):
        """
        Rectangle.
        """

        x: Union[float, int]
        """
        X coordinate
        """
        y: Union[float, int]
        """
        Y coordinate
        """
        width: Union[float, int]
        """
        Rectangle width
        """
        height: Union[float, int]
        """
        Rectangle height
        """

    class TypeCSSComputedStyleProperty(BaseModel):
        name: str
        """
        Computed style property name.
        """
        value: str
        """
        Computed style property value.
        """


class DOMDebugger:
    """
        DOM debugging allows setting breakpoints on particular DOM operations and events. JavaScript
    execution will stop on these operations as if there was a regular breakpoint set.
    """

    class TypeDOMBreakpointType(str, Enum):
        """
        DOM breakpoint type.
        """

        subtree_modified = "subtree-modified"
        attribute_modified = "attribute-modified"
        node_removed = "node-removed"

    class TypeCSPViolationType(str, Enum):
        """
        CSP Violation type.
        """

        trustedtype_sink_violation = "trustedtype-sink-violation"
        trustedtype_policy_violation = "trustedtype-policy-violation"

    class TypeEventListener(BaseModel):
        """
        Object event listener.
        """

        type: str
        """
        `EventListener`'s type.
        """
        useCapture: bool
        """
        `EventListener`'s useCapture.
        """
        passive: bool
        """
        `EventListener`'s passive flag.
        """
        once: bool
        """
        `EventListener`'s once flag.
        """
        scriptId: "Runtime.TypeScriptId"
        """
        Script id of the handler code.
        """
        lineNumber: Union[float, int]
        """
        Line number in the script (0-based).
        """
        columnNumber: Union[float, int]
        """
        Column number in the script (0-based).
        """
        handler: Optional["Runtime.TypeRemoteObject"] = None
        """
        Event handler function value.
        """
        originalHandler: Optional["Runtime.TypeRemoteObject"] = None
        """
        Event original handler function value.
        """
        backendNodeId: Optional["DOM.TypeBackendNodeId"] = None
        """
        Node the listener is added to (if any).
        """


class DOMSnapshot:
    """
    This domain facilitates obtaining document snapshots with DOM, layout, and style information.
    """

    class TypeDOMNode(BaseModel):
        """
        A Node in the DOM tree.
        """

        nodeType: Union[float, int]
        """
        `Node`'s nodeType.
        """
        nodeName: str
        """
        `Node`'s nodeName.
        """
        nodeValue: str
        """
        `Node`'s nodeValue.
        """
        textValue: Optional[str] = None
        """
        Only set for textarea elements, contains the text value.
        """
        inputValue: Optional[str] = None
        """
        Only set for input elements, contains the input's associated text value.
        """
        inputChecked: Optional[bool] = None
        """
        Only set for radio and checkbox input elements, indicates if the element has been checked
        """
        optionSelected: Optional[bool] = None
        """
        Only set for option elements, indicates if the element has been selected
        """
        backendNodeId: "DOM.TypeBackendNodeId"
        """
        `Node`'s id, corresponds to DOM.Node.backendNodeId.
        """
        childNodeIndexes: Optional[list[Any]] = None
        """
        The indexes of the node's child nodes in the `domNodes` array returned by `getSnapshot`, if
any.
        """
        attributes: Optional[list[Any]] = None
        """
        Attributes of an `Element` node.
        """
        pseudoElementIndexes: Optional[list[Any]] = None
        """
        Indexes of pseudo elements associated with this node in the `domNodes` array returned by
`getSnapshot`, if any.
        """
        layoutNodeIndex: Optional[Union[float, int]] = None
        """
        The index of the node's related layout tree node in the `layoutTreeNodes` array returned by
`getSnapshot`, if any.
        """
        documentURL: Optional[str] = None
        """
        Document URL that `Document` or `FrameOwner` node points to.
        """
        baseURL: Optional[str] = None
        """
        Base URL that `Document` or `FrameOwner` node uses for URL completion.
        """
        contentLanguage: Optional[str] = None
        """
        Only set for documents, contains the document's content language.
        """
        documentEncoding: Optional[str] = None
        """
        Only set for documents, contains the document's character set encoding.
        """
        publicId: Optional[str] = None
        """
        `DocumentType` node's publicId.
        """
        systemId: Optional[str] = None
        """
        `DocumentType` node's systemId.
        """
        frameId: Optional["Page.TypeFrameId"] = None
        """
        Frame ID for frame owner elements and also for the document node.
        """
        contentDocumentIndex: Optional[Union[float, int]] = None
        """
        The index of a frame owner element's content document in the `domNodes` array returned by
`getSnapshot`, if any.
        """
        pseudoType: Optional["DOM.TypePseudoType"] = None
        """
        Type of a pseudo element node.
        """
        shadowRootType: Optional["DOM.TypeShadowRootType"] = None
        """
        Shadow root type.
        """
        isClickable: Optional[bool] = None
        """
        Whether this DOM node responds to mouse clicks. This includes nodes that have had click
event listeners attached via JavaScript as well as anchor tags that naturally navigate when
clicked.
        """
        eventListeners: Optional[list[Any]] = None
        """
        Details of the node's event listeners, if any.
        """
        currentSourceURL: Optional[str] = None
        """
        The selected url for nodes with a srcset attribute.
        """
        originURL: Optional[str] = None
        """
        The url of the script (if any) that generates this node.
        """
        scrollOffsetX: Optional[Union[float, int]] = None
        """
        Scroll offsets, set when this node is a Document.
        """
        scrollOffsetY: Optional[Union[float, int]] = None

    class TypeInlineTextBox(BaseModel):
        """
                Details of post layout rendered text positions. The exact layout should not be regarded as
        stable and may change between versions.
        """

        boundingBox: "DOM.TypeRect"
        """
        The bounding box in document coordinates. Note that scroll offset of the document is ignored.
        """
        startCharacterIndex: Union[float, int]
        """
        The starting index in characters, for this post layout textbox substring. Characters that
would be represented as a surrogate pair in UTF-16 have length 2.
        """
        numCharacters: Union[float, int]
        """
        The number of characters in this post layout textbox substring. Characters that would be
represented as a surrogate pair in UTF-16 have length 2.
        """

    class TypeLayoutTreeNode(BaseModel):
        """
        Details of an element in the DOM tree with a LayoutObject.
        """

        domNodeIndex: Union[float, int]
        """
        The index of the related DOM node in the `domNodes` array returned by `getSnapshot`.
        """
        boundingBox: "DOM.TypeRect"
        """
        The bounding box in document coordinates. Note that scroll offset of the document is ignored.
        """
        layoutText: Optional[str] = None
        """
        Contents of the LayoutText, if any.
        """
        inlineTextNodes: Optional[list[Any]] = None
        """
        The post-layout inline text nodes, if any.
        """
        styleIndex: Optional[Union[float, int]] = None
        """
        Index into the `computedStyles` array returned by `getSnapshot`.
        """
        paintOrder: Optional[Union[float, int]] = None
        """
        Global paint order index, which is determined by the stacking order of the nodes. Nodes
that are painted together will have the same index. Only provided if includePaintOrder in
getSnapshot was true.
        """
        isStackingContext: Optional[bool] = None
        """
        Set to true to indicate the element begins a new stacking context.
        """

    class TypeComputedStyle(BaseModel):
        """
        A subset of the full ComputedStyle as defined by the request whitelist.
        """

        properties: list[Any]
        """
        Name/value pairs of computed style properties.
        """

    class TypeNameValue(BaseModel):
        """
        A name/value pair.
        """

        name: str
        """
        Attribute/property name.
        """
        value: str
        """
        Attribute/property value.
        """

    TypeStringIndex = TypeVar("TypeStringIndex", bound=Union[float, int])
    """
    Index of the string in the strings table.
    """

    TypeArrayOfStrings = TypeVar("TypeArrayOfStrings", bound=list[Any])
    """
    Index of the string in the strings table.
    """

    class TypeRareStringData(BaseModel):
        """
        Data that is only present on rare nodes.
        """

        index: list[Any]
        value: list[Any]

    class TypeRareBooleanData(BaseModel):
        index: list[Any]

    class TypeRareIntegerData(BaseModel):
        index: list[Any]
        value: list[Any]

    TypeRectangle = TypeVar("TypeRectangle", bound=list[Any])

    class TypeDocumentSnapshot(BaseModel):
        """
        Document snapshot.
        """

        documentURL: "DOMSnapshot.TypeStringIndex"
        """
        Document URL that `Document` or `FrameOwner` node points to.
        """
        title: "DOMSnapshot.TypeStringIndex"
        """
        Document title.
        """
        baseURL: "DOMSnapshot.TypeStringIndex"
        """
        Base URL that `Document` or `FrameOwner` node uses for URL completion.
        """
        contentLanguage: "DOMSnapshot.TypeStringIndex"
        """
        Contains the document's content language.
        """
        encodingName: "DOMSnapshot.TypeStringIndex"
        """
        Contains the document's character set encoding.
        """
        publicId: "DOMSnapshot.TypeStringIndex"
        """
        `DocumentType` node's publicId.
        """
        systemId: "DOMSnapshot.TypeStringIndex"
        """
        `DocumentType` node's systemId.
        """
        frameId: "DOMSnapshot.TypeStringIndex"
        """
        Frame ID for frame owner elements and also for the document node.
        """
        nodes: "DOMSnapshot.TypeNodeTreeSnapshot"
        """
        A table with dom nodes.
        """
        layout: "DOMSnapshot.TypeLayoutTreeSnapshot"
        """
        The nodes in the layout tree.
        """
        textBoxes: "DOMSnapshot.TypeTextBoxSnapshot"
        """
        The post-layout inline text nodes.
        """
        scrollOffsetX: Optional[Union[float, int]] = None
        """
        Horizontal scroll offset.
        """
        scrollOffsetY: Optional[Union[float, int]] = None
        """
        Vertical scroll offset.
        """
        contentWidth: Optional[Union[float, int]] = None
        """
        Document content width.
        """
        contentHeight: Optional[Union[float, int]] = None
        """
        Document content height.
        """

    class TypeNodeTreeSnapshot(BaseModel):
        """
        Table containing nodes.
        """

        parentIndex: Optional[list[Any]] = None
        """
        Parent node index.
        """
        nodeType: Optional[list[Any]] = None
        """
        `Node`'s nodeType.
        """
        shadowRootType: Optional["DOMSnapshot.TypeRareStringData"] = None
        """
        Type of the shadow root the `Node` is in. String values are equal to the `ShadowRootType` enum.
        """
        nodeName: Optional[list[Any]] = None
        """
        `Node`'s nodeName.
        """
        nodeValue: Optional[list[Any]] = None
        """
        `Node`'s nodeValue.
        """
        backendNodeId: Optional[list[Any]] = None
        """
        `Node`'s id, corresponds to DOM.Node.backendNodeId.
        """
        attributes: Optional[list[Any]] = None
        """
        Attributes of an `Element` node. Flatten name, value pairs.
        """
        textValue: Optional["DOMSnapshot.TypeRareStringData"] = None
        """
        Only set for textarea elements, contains the text value.
        """
        inputValue: Optional["DOMSnapshot.TypeRareStringData"] = None
        """
        Only set for input elements, contains the input's associated text value.
        """
        inputChecked: Optional["DOMSnapshot.TypeRareBooleanData"] = None
        """
        Only set for radio and checkbox input elements, indicates if the element has been checked
        """
        optionSelected: Optional["DOMSnapshot.TypeRareBooleanData"] = None
        """
        Only set for option elements, indicates if the element has been selected
        """
        contentDocumentIndex: Optional["DOMSnapshot.TypeRareIntegerData"] = None
        """
        The index of the document in the list of the snapshot documents.
        """
        pseudoType: Optional["DOMSnapshot.TypeRareStringData"] = None
        """
        Type of a pseudo element node.
        """
        pseudoIdentifier: Optional["DOMSnapshot.TypeRareStringData"] = None
        """
        Pseudo element identifier for this node. Only present if there is a
valid pseudoType.
        """
        isClickable: Optional["DOMSnapshot.TypeRareBooleanData"] = None
        """
        Whether this DOM node responds to mouse clicks. This includes nodes that have had click
event listeners attached via JavaScript as well as anchor tags that naturally navigate when
clicked.
        """
        currentSourceURL: Optional["DOMSnapshot.TypeRareStringData"] = None
        """
        The selected url for nodes with a srcset attribute.
        """
        originURL: Optional["DOMSnapshot.TypeRareStringData"] = None
        """
        The url of the script (if any) that generates this node.
        """

    class TypeLayoutTreeSnapshot(BaseModel):
        """
        Table of details of an element in the DOM tree with a LayoutObject.
        """

        nodeIndex: list[Any]
        """
        Index of the corresponding node in the `NodeTreeSnapshot` array returned by `captureSnapshot`.
        """
        styles: list[Any]
        """
        Array of indexes specifying computed style strings, filtered according to the `computedStyles` parameter passed to `captureSnapshot`.
        """
        bounds: list[Any]
        """
        The absolute position bounding box.
        """
        text: list[Any]
        """
        Contents of the LayoutText, if any.
        """
        stackingContexts: "DOMSnapshot.TypeRareBooleanData"
        """
        Stacking context information.
        """
        paintOrders: Optional[list[Any]] = None
        """
        Global paint order index, which is determined by the stacking order of the nodes. Nodes
that are painted together will have the same index. Only provided if includePaintOrder in
captureSnapshot was true.
        """
        offsetRects: Optional[list[Any]] = None
        """
        The offset rect of nodes. Only available when includeDOMRects is set to true
        """
        scrollRects: Optional[list[Any]] = None
        """
        The scroll rect of nodes. Only available when includeDOMRects is set to true
        """
        clientRects: Optional[list[Any]] = None
        """
        The client rect of nodes. Only available when includeDOMRects is set to true
        """
        blendedBackgroundColors: Optional[list[Any]] = None
        """
        The list of background colors that are blended with colors of overlapping elements.
        """
        textColorOpacities: Optional[list[Any]] = None
        """
        The list of computed text opacities.
        """

    class TypeTextBoxSnapshot(BaseModel):
        """
                Table of details of the post layout rendered text positions. The exact layout should not be regarded as
        stable and may change between versions.
        """

        layoutIndex: list[Any]
        """
        Index of the layout tree node that owns this box collection.
        """
        bounds: list[Any]
        """
        The absolute position bounding box.
        """
        start: list[Any]
        """
        The starting index in characters, for this post layout textbox substring. Characters that
would be represented as a surrogate pair in UTF-16 have length 2.
        """
        length: list[Any]
        """
        The number of characters in this post layout textbox substring. Characters that would be
represented as a surrogate pair in UTF-16 have length 2.
        """


class DOMStorage:
    """
    Query and modify DOM storage.
    """

    TypeSerializedStorageKey = TypeVar("TypeSerializedStorageKey", bound=str)

    class TypeStorageId(BaseModel):
        """
        DOM Storage identifier.
        """

        securityOrigin: Optional[str] = None
        """
        Security origin for the storage.
        """
        storageKey: Optional["DOMStorage.TypeSerializedStorageKey"] = None
        """
        Represents a key by which DOM Storage keys its CachedStorageAreas
        """
        isLocalStorage: bool
        """
        Whether the storage is local storage (not session storage).
        """

    TypeItem = TypeVar("TypeItem", bound=list[Any])
    """
    DOM Storage item.
    """


class Database:
    TypeDatabaseId = TypeVar("TypeDatabaseId", bound=str)
    """
    Unique identifier of Database object.
    """

    class TypeDatabase(BaseModel):
        """
        Database object.
        """

        id: "Database.TypeDatabaseId"
        """
        Database ID.
        """
        domain: str
        """
        Database domain.
        """
        name: str
        """
        Database name.
        """
        version: str
        """
        Database version.
        """

    class TypeError(BaseModel):
        """
        Database error.
        """

        message: str
        """
        Error message.
        """
        code: Union[float, int]
        """
        Error code.
        """


class Emulation:
    """
    This domain emulates different environments for the page.
    """

    class TypeScreenOrientation(BaseModel):
        """
        Screen orientation.
        """

        type: Literal[
            "portraitPrimary",
            "portraitSecondary",
            "landscapePrimary",
            "landscapeSecondary",
        ]
        """
        Orientation type.
        """
        angle: Union[float, int]
        """
        Orientation angle.
        """

    class TypeDisplayFeature(BaseModel):
        orientation: Literal["vertical", "horizontal"]
        """
        Orientation of a display feature in relation to screen
        """
        offset: Union[float, int]
        """
        The offset from the screen origin in either the x (for vertical
orientation) or y (for horizontal orientation) direction.
        """
        maskLength: Union[float, int]
        """
        A display feature may mask content such that it is not physically
displayed - this length along with the offset describes this area.
A display feature that only splits content will have a 0 mask_length.
        """

    class TypeDevicePosture(BaseModel):
        type: Literal["continuous", "folded"]
        """
        Current posture of the device
        """

    class TypeMediaFeature(BaseModel):
        name: str
        value: str

    class TypeVirtualTimePolicy(str, Enum):
        """
                advance: If the scheduler runs out of immediate work, the virtual time base may fast forward to
        allow the next delayed task (if any) to run; pause: The virtual time base may not advance;
        pauseIfNetworkFetchesPending: The virtual time base may not advance if there are any pending
        resource fetches.
        """

        advance = "advance"
        pause = "pause"
        pauseIfNetworkFetchesPending = "pauseIfNetworkFetchesPending"

    class TypeUserAgentBrandVersion(BaseModel):
        """
        Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints
        """

        brand: str
        version: str

    class TypeUserAgentMetadata(BaseModel):
        """
                Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints
        Missing optional values will be filled in by the target with what it would normally use.
        """

        brands: Optional[list[Any]] = None
        """
        Brands appearing in Sec-CH-UA.
        """
        fullVersionList: Optional[list[Any]] = None
        """
        Brands appearing in Sec-CH-UA-Full-Version-List.
        """
        fullVersion: Optional[str] = None
        platform: str
        platformVersion: str
        architecture: str
        model: str
        mobile: bool
        bitness: Optional[str] = None
        wow64: Optional[bool] = None

    class TypeSensorType(str, Enum):
        """
                Used to specify sensor types to emulate.
        See https://w3c.github.io/sensors/#automation for more information.
        """

        absolute_orientation = "absolute-orientation"
        accelerometer = "accelerometer"
        ambient_light = "ambient-light"
        gravity = "gravity"
        gyroscope = "gyroscope"
        linear_acceleration = "linear-acceleration"
        magnetometer = "magnetometer"
        proximity = "proximity"
        relative_orientation = "relative-orientation"

    class TypeSensorMetadata(BaseModel):
        available: Optional[bool] = None
        minimumFrequency: Optional[Union[float, int]] = None
        maximumFrequency: Optional[Union[float, int]] = None

    class TypeSensorReadingSingle(BaseModel):
        value: Union[float, int]

    class TypeSensorReadingXYZ(BaseModel):
        x: Union[float, int]
        y: Union[float, int]
        z: Union[float, int]

    class TypeSensorReadingQuaternion(BaseModel):
        x: Union[float, int]
        y: Union[float, int]
        z: Union[float, int]
        w: Union[float, int]

    class TypeSensorReading(BaseModel):
        single: Optional["Emulation.TypeSensorReadingSingle"] = None
        xyz: Optional["Emulation.TypeSensorReadingXYZ"] = None
        quaternion: Optional["Emulation.TypeSensorReadingQuaternion"] = None

    class TypeDisabledImageType(str, Enum):
        """
        Enum of image types that can be disabled.
        """

        avif = "avif"
        webp = "webp"


class HeadlessExperimental:
    """
    This domain provides experimental commands only supported in headless mode.
    """

    class TypeScreenshotParams(BaseModel):
        """
        Encoding options for a screenshot.
        """

        format: Optional[Literal["jpeg", "png", "webp"]] = None
        """
        Image compression format (defaults to png).
        """
        quality: Optional[Union[float, int]] = None
        """
        Compression quality from range [0..100] (jpeg and webp only).
        """
        optimizeForSpeed: Optional[bool] = None
        """
        Optimize image encoding for speed, not for resulting size (defaults to false)
        """


class IO:
    """
    Input/Output operations for streams produced by DevTools.
    """

    TypeStreamHandle = TypeVar("TypeStreamHandle", bound=str)
    """
    This is either obtained from another method or specified as `blob:<uuid>` where
`<uuid>` is an UUID of a Blob.
    """


class IndexedDB:
    class TypeDatabaseWithObjectStores(BaseModel):
        """
        Database with an array of object stores.
        """

        name: str
        """
        Database name.
        """
        version: Union[float, int]
        """
        Database version (type is not 'integer', as the standard
requires the version number to be 'unsigned long long')
        """
        objectStores: list[Any]
        """
        Object stores in this database.
        """

    class TypeObjectStore(BaseModel):
        """
        Object store.
        """

        name: str
        """
        Object store name.
        """
        keyPath: "IndexedDB.TypeKeyPath"
        """
        Object store key path.
        """
        autoIncrement: bool
        """
        If true, object store has auto increment flag set.
        """
        indexes: list[Any]
        """
        Indexes in this object store.
        """

    class TypeObjectStoreIndex(BaseModel):
        """
        Object store index.
        """

        name: str
        """
        Index name.
        """
        keyPath: "IndexedDB.TypeKeyPath"
        """
        Index key path.
        """
        unique: bool
        """
        If true, index is unique.
        """
        multiEntry: bool
        """
        If true, index allows multiple entries for a key.
        """

    class TypeKey(BaseModel):
        """
        Key.
        """

        type: Literal["number", "string", "date", "array"]
        """
        Key type.
        """
        number: Optional[Union[float, int]] = None
        """
        Number value.
        """
        string: Optional[str] = None
        """
        String value.
        """
        date: Optional[Union[float, int]] = None
        """
        Date value.
        """
        array: Optional[list[Any]] = None
        """
        Array value.
        """

    class TypeKeyRange(BaseModel):
        """
        Key range.
        """

        lower: Optional["IndexedDB.TypeKey"] = None
        """
        Lower bound.
        """
        upper: Optional["IndexedDB.TypeKey"] = None
        """
        Upper bound.
        """
        lowerOpen: bool
        """
        If true lower bound is open.
        """
        upperOpen: bool
        """
        If true upper bound is open.
        """

    class TypeDataEntry(BaseModel):
        """
        Data entry.
        """

        key: "Runtime.TypeRemoteObject"
        """
        Key object.
        """
        primaryKey: "Runtime.TypeRemoteObject"
        """
        Primary key object.
        """
        value: "Runtime.TypeRemoteObject"
        """
        Value object.
        """

    class TypeKeyPath(BaseModel):
        """
        Key path.
        """

        type: Literal["null", "string", "array"]
        """
        Key path type.
        """
        string: Optional[str] = None
        """
        String value.
        """
        array: Optional[list[Any]] = None
        """
        Array value.
        """


class Input:
    class TypeTouchPoint(BaseModel):
        x: Union[float, int]
        """
        X coordinate of the event relative to the main frame's viewport in CSS pixels.
        """
        y: Union[float, int]
        """
        Y coordinate of the event relative to the main frame's viewport in CSS pixels. 0 refers to
the top of the viewport and Y increases as it proceeds towards the bottom of the viewport.
        """
        radiusX: Optional[Union[float, int]] = None
        """
        X radius of the touch area (default: 1.0).
        """
        radiusY: Optional[Union[float, int]] = None
        """
        Y radius of the touch area (default: 1.0).
        """
        rotationAngle: Optional[Union[float, int]] = None
        """
        Rotation angle (default: 0.0).
        """
        force: Optional[Union[float, int]] = None
        """
        Force (default: 1.0).
        """
        tangentialPressure: Optional[Union[float, int]] = None
        """
        The normalized tangential pressure, which has a range of [-1,1] (default: 0).
        """
        tiltX: Optional[Union[float, int]] = None
        """
        The plane angle between the Y-Z plane and the plane containing both the stylus axis and the Y axis, in degrees of the range [-90,90], a positive tiltX is to the right (default: 0)
        """
        tiltY: Optional[Union[float, int]] = None
        """
        The plane angle between the X-Z plane and the plane containing both the stylus axis and the X axis, in degrees of the range [-90,90], a positive tiltY is towards the user (default: 0).
        """
        twist: Optional[Union[float, int]] = None
        """
        The clockwise rotation of a pen stylus around its own major axis, in degrees in the range [0,359] (default: 0).
        """
        id: Optional[Union[float, int]] = None
        """
        Identifier used to track touch sources between events, must be unique within an event.
        """

    class TypeGestureSourceType(str, Enum):
        default = "default"
        touch = "touch"
        mouse = "mouse"

    class TypeMouseButton(str, Enum):
        none = "none"
        left = "left"
        middle = "middle"
        right = "right"
        back = "back"
        forward = "forward"

    TypeTimeSinceEpoch = TypeVar("TypeTimeSinceEpoch", bound=Union[float, int])
    """
    UTC time in seconds, counted from January 1, 1970.
    """

    class TypeDragDataItem(BaseModel):
        mimeType: str
        """
        Mime type of the dragged data.
        """
        data: str
        """
        Depending of the value of `mimeType`, it contains the dragged link,
text, HTML markup or any other data.
        """
        title: Optional[str] = None
        """
        Title associated with a link. Only valid when `mimeType` == "text/uri-list".
        """
        baseURL: Optional[str] = None
        """
        Stores the base URL for the contained markup. Only valid when `mimeType`
== "text/html".
        """

    class TypeDragData(BaseModel):
        items: list[Any]
        files: Optional[list[Any]] = None
        """
        List of filenames that should be included when dropping
        """
        dragOperationsMask: Union[float, int]
        """
        Bit field representing allowed drag operations. Copy = 1, Link = 2, Move = 16
        """


class LayerTree:
    TypeLayerId = TypeVar("TypeLayerId", bound=str)
    """
    Unique Layer identifier.
    """

    TypeSnapshotId = TypeVar("TypeSnapshotId", bound=str)
    """
    Unique snapshot identifier.
    """

    class TypeScrollRect(BaseModel):
        """
        Rectangle where scrolling happens on the main thread.
        """

        rect: "DOM.TypeRect"
        """
        Rectangle itself.
        """
        type: Literal["RepaintsOnScroll", "TouchEventHandler", "WheelEventHandler"]
        """
        Reason for rectangle to force scrolling on the main thread
        """

    class TypeStickyPositionConstraint(BaseModel):
        """
        Sticky position constraints.
        """

        stickyBoxRect: "DOM.TypeRect"
        """
        Layout rectangle of the sticky element before being shifted
        """
        containingBlockRect: "DOM.TypeRect"
        """
        Layout rectangle of the containing block of the sticky element
        """
        nearestLayerShiftingStickyBox: Optional["LayerTree.TypeLayerId"] = None
        """
        The nearest sticky layer that shifts the sticky box
        """
        nearestLayerShiftingContainingBlock: Optional["LayerTree.TypeLayerId"] = None
        """
        The nearest sticky layer that shifts the containing block
        """

    class TypePictureTile(BaseModel):
        """
        Serialized fragment of layer picture along with its offset within the layer.
        """

        x: Union[float, int]
        """
        Offset from owning layer left boundary
        """
        y: Union[float, int]
        """
        Offset from owning layer top boundary
        """
        picture: str
        """
        Base64-encoded snapshot data. (Encoded as a base64 string when passed over JSON)
        """

    class TypeLayer(BaseModel):
        """
        Information about a compositing layer.
        """

        layerId: "LayerTree.TypeLayerId"
        """
        The unique id for this layer.
        """
        parentLayerId: Optional["LayerTree.TypeLayerId"] = None
        """
        The id of parent (not present for root).
        """
        backendNodeId: Optional["DOM.TypeBackendNodeId"] = None
        """
        The backend id for the node associated with this layer.
        """
        offsetX: Union[float, int]
        """
        Offset from parent layer, X coordinate.
        """
        offsetY: Union[float, int]
        """
        Offset from parent layer, Y coordinate.
        """
        width: Union[float, int]
        """
        Layer width.
        """
        height: Union[float, int]
        """
        Layer height.
        """
        transform: Optional[list[Any]] = None
        """
        Transformation matrix for layer, default is identity matrix
        """
        anchorX: Optional[Union[float, int]] = None
        """
        Transform anchor point X, absent if no transform specified
        """
        anchorY: Optional[Union[float, int]] = None
        """
        Transform anchor point Y, absent if no transform specified
        """
        anchorZ: Optional[Union[float, int]] = None
        """
        Transform anchor point Z, absent if no transform specified
        """
        paintCount: Union[float, int]
        """
        Indicates how many time this layer has painted.
        """
        drawsContent: bool
        """
        Indicates whether this layer hosts any content, rather than being used for
transform/scrolling purposes only.
        """
        invisible: Optional[bool] = None
        """
        Set if layer is not visible.
        """
        scrollRects: Optional[list[Any]] = None
        """
        Rectangles scrolling on main thread only.
        """
        stickyPositionConstraint: Optional["LayerTree.TypeStickyPositionConstraint"] = (
            None
        )
        """
        Sticky position constraint information
        """

    TypePaintProfile = TypeVar("TypePaintProfile", bound=list[Any])
    """
    Array of timings, one per paint step.
    """


class Log:
    """
    Provides access to log entries.
    """

    class TypeLogEntry(BaseModel):
        """
        Log entry.
        """

        source: Literal[
            "xml",
            "javascript",
            "network",
            "storage",
            "appcache",
            "rendering",
            "security",
            "deprecation",
            "worker",
            "violation",
            "intervention",
            "recommendation",
            "other",
        ]
        """
        Log entry source.
        """
        level: Literal["verbose", "info", "warning", "error"]
        """
        Log entry severity.
        """
        text: str
        """
        Logged text.
        """
        category: Optional[Literal["cors"]] = None
        timestamp: "Runtime.TypeTimestamp"
        """
        Timestamp when this entry was added.
        """
        url: Optional[str] = None
        """
        URL of the resource if known.
        """
        lineNumber: Optional[Union[float, int]] = None
        """
        Line number in the resource.
        """
        stackTrace: Optional["Runtime.TypeStackTrace"] = None
        """
        JavaScript stack trace.
        """
        networkRequestId: Optional["Network.TypeRequestId"] = None
        """
        Identifier of the network request associated with this entry.
        """
        workerId: Optional[str] = None
        """
        Identifier of the worker associated with this entry.
        """
        args: Optional[list[Any]] = None
        """
        Call arguments.
        """

    class TypeViolationSetting(BaseModel):
        """
        Violation configuration setting.
        """

        name: Literal[
            "longTask",
            "longLayout",
            "blockedEvent",
            "blockedParser",
            "discouragedAPIUse",
            "handler",
            "recurringHandler",
        ]
        """
        Violation type.
        """
        threshold: Union[float, int]
        """
        Time threshold to trigger upon.
        """


class Memory:
    class TypePressureLevel(str, Enum):
        """
        Memory pressure level.
        """

        moderate = "moderate"
        critical = "critical"

    class TypeSamplingProfileNode(BaseModel):
        """
        Heap profile sample.
        """

        size: Union[float, int]
        """
        Size of the sampled allocation.
        """
        total: Union[float, int]
        """
        Total bytes attributed to this sample.
        """
        stack: list[Any]
        """
        Execution stack at the point of allocation.
        """

    class TypeSamplingProfile(BaseModel):
        """
        Array of heap profile samples.
        """

        samples: list[Any]
        modules: list[Any]

    class TypeModule(BaseModel):
        """
        Executable module information
        """

        name: str
        """
        Name of the module.
        """
        uuid: str
        """
        UUID of the module.
        """
        baseAddress: str
        """
        Base address where the module is loaded into memory. Encoded as a decimal
or hexadecimal (0x prefixed) string.
        """
        size: Union[float, int]
        """
        Size of the module in bytes.
        """


class Network:
    """
        Network domain allows tracking network activities of the page. It exposes information about http,
    file, data and other requests and responses, their headers, bodies, timing, etc.
    """

    class TypeResourceType(str, Enum):
        """
        Resource type as it was perceived by the rendering engine.
        """

        Document = "Document"
        Stylesheet = "Stylesheet"
        Image = "Image"
        Media = "Media"
        Font = "Font"
        Script = "Script"
        TextTrack = "TextTrack"
        XHR = "XHR"
        Fetch = "Fetch"
        Prefetch = "Prefetch"
        EventSource = "EventSource"
        WebSocket = "WebSocket"
        Manifest = "Manifest"
        SignedExchange = "SignedExchange"
        Ping = "Ping"
        CSPViolationReport = "CSPViolationReport"
        Preflight = "Preflight"
        Other = "Other"

    TypeLoaderId = TypeVar("TypeLoaderId", bound=str)
    """
    Unique loader identifier.
    """

    TypeRequestId = TypeVar("TypeRequestId", bound=str)
    """
    Unique request identifier.
    """

    TypeInterceptionId = TypeVar("TypeInterceptionId", bound=str)
    """
    Unique intercepted request identifier.
    """

    class TypeErrorReason(str, Enum):
        """
        Network level fetch failure reason.
        """

        Failed = "Failed"
        Aborted = "Aborted"
        TimedOut = "TimedOut"
        AccessDenied = "AccessDenied"
        ConnectionClosed = "ConnectionClosed"
        ConnectionReset = "ConnectionReset"
        ConnectionRefused = "ConnectionRefused"
        ConnectionAborted = "ConnectionAborted"
        ConnectionFailed = "ConnectionFailed"
        NameNotResolved = "NameNotResolved"
        InternetDisconnected = "InternetDisconnected"
        AddressUnreachable = "AddressUnreachable"
        BlockedByClient = "BlockedByClient"
        BlockedByResponse = "BlockedByResponse"

    TypeTimeSinceEpoch = TypeVar("TypeTimeSinceEpoch", bound=Union[float, int])
    """
    UTC time in seconds, counted from January 1, 1970.
    """

    TypeMonotonicTime = TypeVar("TypeMonotonicTime", bound=Union[float, int])
    """
    Monotonically increasing time in seconds since an arbitrary point in the past.
    """

    TypeHeaders = TypeVar("TypeHeaders", bound=dict[str, Any])
    """
    Request / response headers as keys / values of JSON object.
    """

    class TypeConnectionType(str, Enum):
        """
        The underlying connection technology that the browser is supposedly using.
        """

        none = "none"
        cellular2g = "cellular2g"
        cellular3g = "cellular3g"
        cellular4g = "cellular4g"
        bluetooth = "bluetooth"
        ethernet = "ethernet"
        wifi = "wifi"
        wimax = "wimax"
        other = "other"

    class TypeCookieSameSite(str, Enum):
        """
                Represents the cookie's 'SameSite' status:
        https://tools.ietf.org/html/draft-west-first-party-cookies
        """

        Strict = "Strict"
        Lax = "Lax"
        NONE = "None"

    class TypeCookiePriority(str, Enum):
        """
                Represents the cookie's 'Priority' status:
        https://tools.ietf.org/html/draft-west-cookie-priority-00
        """

        Low = "Low"
        Medium = "Medium"
        High = "High"

    class TypeCookieSourceScheme(str, Enum):
        """
                Represents the source scheme of the origin that originally set the cookie.
        A value of "Unset" allows protocol clients to emulate legacy cookie scope for the scheme.
        This is a temporary ability and it will be removed in the future.
        """

        Unset = "Unset"
        NonSecure = "NonSecure"
        Secure = "Secure"

    class TypeResourceTiming(BaseModel):
        """
        Timing information for the request.
        """

        requestTime: Union[float, int]
        """
        Timing's requestTime is a baseline in seconds, while the other numbers are ticks in
milliseconds relatively to this requestTime.
        """
        proxyStart: Union[float, int]
        """
        Started resolving proxy.
        """
        proxyEnd: Union[float, int]
        """
        Finished resolving proxy.
        """
        dnsStart: Union[float, int]
        """
        Started DNS address resolve.
        """
        dnsEnd: Union[float, int]
        """
        Finished DNS address resolve.
        """
        connectStart: Union[float, int]
        """
        Started connecting to the remote host.
        """
        connectEnd: Union[float, int]
        """
        Connected to the remote host.
        """
        sslStart: Union[float, int]
        """
        Started SSL handshake.
        """
        sslEnd: Union[float, int]
        """
        Finished SSL handshake.
        """
        workerStart: Union[float, int]
        """
        Started running ServiceWorker.
        """
        workerReady: Union[float, int]
        """
        Finished Starting ServiceWorker.
        """
        workerFetchStart: Union[float, int]
        """
        Started fetch event.
        """
        workerRespondWithSettled: Union[float, int]
        """
        Settled fetch event respondWith promise.
        """
        workerRouterEvaluationStart: Optional[Union[float, int]] = None
        """
        Started ServiceWorker static routing source evaluation.
        """
        workerCacheLookupStart: Optional[Union[float, int]] = None
        """
        Started cache lookup when the source was evaluated to `cache`.
        """
        sendStart: Union[float, int]
        """
        Started sending request.
        """
        sendEnd: Union[float, int]
        """
        Finished sending request.
        """
        pushStart: Union[float, int]
        """
        Time the server started pushing request.
        """
        pushEnd: Union[float, int]
        """
        Time the server finished pushing request.
        """
        receiveHeadersStart: Union[float, int]
        """
        Started receiving response headers.
        """
        receiveHeadersEnd: Union[float, int]
        """
        Finished receiving response headers.
        """

    class TypeResourcePriority(str, Enum):
        """
        Loading priority of a resource request.
        """

        VeryLow = "VeryLow"
        Low = "Low"
        Medium = "Medium"
        High = "High"
        VeryHigh = "VeryHigh"

    class TypePostDataEntry(BaseModel):
        """
        Post data entry for HTTP request
        """

        bytes: Optional[str] = None

    class TypeRequest(BaseModel):
        """
        HTTP request data.
        """

        url: str
        """
        Request URL (without fragment).
        """
        urlFragment: Optional[str] = None
        """
        Fragment of the requested URL starting with hash, if present.
        """
        method: str
        """
        HTTP request method.
        """
        headers: "Network.TypeHeaders"
        """
        HTTP request headers.
        """
        postData: Optional[str] = None
        """
        HTTP POST request data.
Use postDataEntries instead.
        """
        hasPostData: Optional[bool] = None
        """
        True when the request has POST data. Note that postData might still be omitted when this flag is true when the data is too long.
        """
        postDataEntries: Optional[list[Any]] = None
        """
        Request body elements (post data broken into individual entries).
        """
        mixedContentType: Optional["Security.TypeMixedContentType"] = None
        """
        The mixed content type of the request.
        """
        initialPriority: "Network.TypeResourcePriority"
        """
        Priority of the resource request at the time request is sent.
        """
        referrerPolicy: Literal[
            "unsafe-url",
            "no-referrer-when-downgrade",
            "no-referrer",
            "origin",
            "origin-when-cross-origin",
            "same-origin",
            "strict-origin",
            "strict-origin-when-cross-origin",
        ]
        """
        The referrer policy of the request, as defined in https://www.w3.org/TR/referrer-policy/
        """
        isLinkPreload: Optional[bool] = None
        """
        Whether is loaded via link preload.
        """
        trustTokenParams: Optional["Network.TypeTrustTokenParams"] = None
        """
        Set for requests when the TrustToken API is used. Contains the parameters
passed by the developer (e.g. via "fetch") as understood by the backend.
        """
        isSameSite: Optional[bool] = None
        """
        True if this resource request is considered to be the 'same site' as the
request corresponding to the main frame.
        """

    class TypeSignedCertificateTimestamp(BaseModel):
        """
        Details of a signed certificate timestamp (SCT).
        """

        status: str
        """
        Validation status.
        """
        origin: str
        """
        Origin.
        """
        logDescription: str
        """
        Log name / description.
        """
        logId: str
        """
        Log ID.
        """
        timestamp: Union[float, int]
        """
        Issuance date. Unlike TimeSinceEpoch, this contains the number of
milliseconds since January 1, 1970, UTC, not the number of seconds.
        """
        hashAlgorithm: str
        """
        Hash algorithm.
        """
        signatureAlgorithm: str
        """
        Signature algorithm.
        """
        signatureData: str
        """
        Signature data.
        """

    class TypeSecurityDetails(BaseModel):
        """
        Security details about a request.
        """

        protocol: str
        """
        Protocol name (e.g. "TLS 1.2" or "QUIC").
        """
        keyExchange: str
        """
        Key Exchange used by the connection, or the empty string if not applicable.
        """
        keyExchangeGroup: Optional[str] = None
        """
        (EC)DH group used by the connection, if applicable.
        """
        cipher: str
        """
        Cipher name.
        """
        mac: Optional[str] = None
        """
        TLS MAC. Note that AEAD ciphers do not have separate MACs.
        """
        certificateId: "Security.TypeCertificateId"
        """
        Certificate ID value.
        """
        subjectName: str
        """
        Certificate subject name.
        """
        sanList: list[Any]
        """
        Subject Alternative Name (SAN) DNS names and IP addresses.
        """
        issuer: str
        """
        Name of the issuing CA.
        """
        validFrom: "Network.TypeTimeSinceEpoch"
        """
        Certificate valid from date.
        """
        validTo: "Network.TypeTimeSinceEpoch"
        """
        Certificate valid to (expiration) date
        """
        signedCertificateTimestampList: list[Any]
        """
        List of signed certificate timestamps (SCTs).
        """
        certificateTransparencyCompliance: (
            "Network.TypeCertificateTransparencyCompliance"
        )
        """
        Whether the request complied with Certificate Transparency policy
        """
        serverSignatureAlgorithm: Optional[Union[float, int]] = None
        """
        The signature algorithm used by the server in the TLS server signature,
represented as a TLS SignatureScheme code point. Omitted if not
applicable or not known.
        """
        encryptedClientHello: bool
        """
        Whether the connection used Encrypted ClientHello
        """

    class TypeCertificateTransparencyCompliance(str, Enum):
        """
        Whether the request complied with Certificate Transparency policy.
        """

        unknown = "unknown"
        not_compliant = "not-compliant"
        compliant = "compliant"

    class TypeBlockedReason(str, Enum):
        """
        The reason why request was blocked.
        """

        other = "other"
        csp = "csp"
        mixed_content = "mixed-content"
        origin = "origin"
        inspector = "inspector"
        subresource_filter = "subresource-filter"
        content_type = "content-type"
        coep_frame_resource_needs_coep_header = "coep-frame-resource-needs-coep-header"
        coop_sandboxed_iframe_cannot_navigate_to_coop_page = (
            "coop-sandboxed-iframe-cannot-navigate-to-coop-page"
        )
        corp_not_same_origin = "corp-not-same-origin"
        corp_not_same_origin_after_defaulted_to_same_origin_by_coep = (
            "corp-not-same-origin-after-defaulted-to-same-origin-by-coep"
        )
        corp_not_same_origin_after_defaulted_to_same_origin_by_dip = (
            "corp-not-same-origin-after-defaulted-to-same-origin-by-dip"
        )
        corp_not_same_origin_after_defaulted_to_same_origin_by_coep_and_dip = (
            "corp-not-same-origin-after-defaulted-to-same-origin-by-coep-and-dip"
        )
        corp_not_same_site = "corp-not-same-site"

    class TypeCorsError(str, Enum):
        """
        The reason why request was blocked.
        """

        DisallowedByMode = "DisallowedByMode"
        InvalidResponse = "InvalidResponse"
        WildcardOriginNotAllowed = "WildcardOriginNotAllowed"
        MissingAllowOriginHeader = "MissingAllowOriginHeader"
        MultipleAllowOriginValues = "MultipleAllowOriginValues"
        InvalidAllowOriginValue = "InvalidAllowOriginValue"
        AllowOriginMismatch = "AllowOriginMismatch"
        InvalidAllowCredentials = "InvalidAllowCredentials"
        CorsDisabledScheme = "CorsDisabledScheme"
        PreflightInvalidStatus = "PreflightInvalidStatus"
        PreflightDisallowedRedirect = "PreflightDisallowedRedirect"
        PreflightWildcardOriginNotAllowed = "PreflightWildcardOriginNotAllowed"
        PreflightMissingAllowOriginHeader = "PreflightMissingAllowOriginHeader"
        PreflightMultipleAllowOriginValues = "PreflightMultipleAllowOriginValues"
        PreflightInvalidAllowOriginValue = "PreflightInvalidAllowOriginValue"
        PreflightAllowOriginMismatch = "PreflightAllowOriginMismatch"
        PreflightInvalidAllowCredentials = "PreflightInvalidAllowCredentials"
        PreflightMissingAllowExternal = "PreflightMissingAllowExternal"
        PreflightInvalidAllowExternal = "PreflightInvalidAllowExternal"
        PreflightMissingAllowPrivateNetwork = "PreflightMissingAllowPrivateNetwork"
        PreflightInvalidAllowPrivateNetwork = "PreflightInvalidAllowPrivateNetwork"
        InvalidAllowMethodsPreflightResponse = "InvalidAllowMethodsPreflightResponse"
        InvalidAllowHeadersPreflightResponse = "InvalidAllowHeadersPreflightResponse"
        MethodDisallowedByPreflightResponse = "MethodDisallowedByPreflightResponse"
        HeaderDisallowedByPreflightResponse = "HeaderDisallowedByPreflightResponse"
        RedirectContainsCredentials = "RedirectContainsCredentials"
        InsecurePrivateNetwork = "InsecurePrivateNetwork"
        InvalidPrivateNetworkAccess = "InvalidPrivateNetworkAccess"
        UnexpectedPrivateNetworkAccess = "UnexpectedPrivateNetworkAccess"
        NoCorsRedirectModeNotFollow = "NoCorsRedirectModeNotFollow"
        PreflightMissingPrivateNetworkAccessId = (
            "PreflightMissingPrivateNetworkAccessId"
        )
        PreflightMissingPrivateNetworkAccessName = (
            "PreflightMissingPrivateNetworkAccessName"
        )
        PrivateNetworkAccessPermissionUnavailable = (
            "PrivateNetworkAccessPermissionUnavailable"
        )
        PrivateNetworkAccessPermissionDenied = "PrivateNetworkAccessPermissionDenied"

    class TypeCorsErrorStatus(BaseModel):
        corsError: "Network.TypeCorsError"
        failedParameter: str

    class TypeServiceWorkerResponseSource(str, Enum):
        """
        Source of serviceworker response.
        """

        cache_storage = "cache-storage"
        http_cache = "http-cache"
        fallback_code = "fallback-code"
        network = "network"

    class TypeTrustTokenParams(BaseModel):
        """
                Determines what type of Trust Token operation is executed and
        depending on the type, some additional parameters. The values
        are specified in third_party/blink/renderer/core/fetch/trust_token.idl.
        """

        operation: "Network.TypeTrustTokenOperationType"
        refreshPolicy: Literal["UseCached", "Refresh"]
        """
        Only set for "token-redemption" operation and determine whether
to request a fresh SRR or use a still valid cached SRR.
        """
        issuers: Optional[list[Any]] = None
        """
        Origins of issuers from whom to request tokens or redemption
records.
        """

    class TypeTrustTokenOperationType(str, Enum):
        Issuance = "Issuance"
        Redemption = "Redemption"
        Signing = "Signing"

    class TypeAlternateProtocolUsage(str, Enum):
        """
        The reason why Chrome uses a specific transport protocol for HTTP semantics.
        """

        alternativeJobWonWithoutRace = "alternativeJobWonWithoutRace"
        alternativeJobWonRace = "alternativeJobWonRace"
        mainJobWonRace = "mainJobWonRace"
        mappingMissing = "mappingMissing"
        broken = "broken"
        dnsAlpnH3JobWonWithoutRace = "dnsAlpnH3JobWonWithoutRace"
        dnsAlpnH3JobWonRace = "dnsAlpnH3JobWonRace"
        unspecifiedReason = "unspecifiedReason"

    class TypeServiceWorkerRouterSource(str, Enum):
        """
        Source of service worker router.
        """

        network = "network"
        cache = "cache"
        fetch_event = "fetch-event"
        race_network_and_fetch_handler = "race-network-and-fetch-handler"

    class TypeServiceWorkerRouterInfo(BaseModel):
        ruleIdMatched: Optional[Union[float, int]] = None
        """
        ID of the rule matched. If there is a matched rule, this field will
be set, otherwiser no value will be set.
        """
        matchedSourceType: Optional["Network.TypeServiceWorkerRouterSource"] = None
        """
        The router source of the matched rule. If there is a matched rule, this
field will be set, otherwise no value will be set.
        """
        actualSourceType: Optional["Network.TypeServiceWorkerRouterSource"] = None
        """
        The actual router source used.
        """

    class TypeResponse(BaseModel):
        """
        HTTP response data.
        """

        url: str
        """
        Response URL. This URL can be different from CachedResource.url in case of redirect.
        """
        status: Union[float, int]
        """
        HTTP response status code.
        """
        statusText: str
        """
        HTTP response status text.
        """
        headers: "Network.TypeHeaders"
        """
        HTTP response headers.
        """
        headersText: Optional[str] = None
        """
        HTTP response headers text. This has been replaced by the headers in Network.responseReceivedExtraInfo.
        """
        mimeType: str
        """
        Resource mimeType as determined by the browser.
        """
        charset: str
        """
        Resource charset as determined by the browser (if applicable).
        """
        requestHeaders: Optional["Network.TypeHeaders"] = None
        """
        Refined HTTP request headers that were actually transmitted over the network.
        """
        requestHeadersText: Optional[str] = None
        """
        HTTP request headers text. This has been replaced by the headers in Network.requestWillBeSentExtraInfo.
        """
        connectionReused: bool
        """
        Specifies whether physical connection was actually reused for this request.
        """
        connectionId: Union[float, int]
        """
        Physical connection id that was actually used for this request.
        """
        remoteIPAddress: Optional[str] = None
        """
        Remote IP address.
        """
        remotePort: Optional[Union[float, int]] = None
        """
        Remote port.
        """
        fromDiskCache: Optional[bool] = None
        """
        Specifies that the request was served from the disk cache.
        """
        fromServiceWorker: Optional[bool] = None
        """
        Specifies that the request was served from the ServiceWorker.
        """
        fromPrefetchCache: Optional[bool] = None
        """
        Specifies that the request was served from the prefetch cache.
        """
        fromEarlyHints: Optional[bool] = None
        """
        Specifies that the request was served from the prefetch cache.
        """
        serviceWorkerRouterInfo: Optional["Network.TypeServiceWorkerRouterInfo"] = None
        """
        Information about how ServiceWorker Static Router API was used. If this
field is set with `matchedSourceType` field, a matching rule is found.
If this field is set without `matchedSource`, no matching rule is found.
Otherwise, the API is not used.
        """
        encodedDataLength: Union[float, int]
        """
        Total number of bytes received for this request so far.
        """
        timing: Optional["Network.TypeResourceTiming"] = None
        """
        Timing information for the given request.
        """
        serviceWorkerResponseSource: Optional[
            "Network.TypeServiceWorkerResponseSource"
        ] = None
        """
        Response source of response from ServiceWorker.
        """
        responseTime: Optional["Network.TypeTimeSinceEpoch"] = None
        """
        The time at which the returned response was generated.
        """
        cacheStorageCacheName: Optional[str] = None
        """
        Cache Storage Cache Name.
        """
        protocol: Optional[str] = None
        """
        Protocol used to fetch this request.
        """
        alternateProtocolUsage: Optional["Network.TypeAlternateProtocolUsage"] = None
        """
        The reason why Chrome uses a specific transport protocol for HTTP semantics.
        """
        securityState: "Security.TypeSecurityState"
        """
        Security state of the request resource.
        """
        securityDetails: Optional["Network.TypeSecurityDetails"] = None
        """
        Security details for the request.
        """

    class TypeWebSocketRequest(BaseModel):
        """
        WebSocket request data.
        """

        headers: "Network.TypeHeaders"
        """
        HTTP request headers.
        """

    class TypeWebSocketResponse(BaseModel):
        """
        WebSocket response data.
        """

        status: Union[float, int]
        """
        HTTP response status code.
        """
        statusText: str
        """
        HTTP response status text.
        """
        headers: "Network.TypeHeaders"
        """
        HTTP response headers.
        """
        headersText: Optional[str] = None
        """
        HTTP response headers text.
        """
        requestHeaders: Optional["Network.TypeHeaders"] = None
        """
        HTTP request headers.
        """
        requestHeadersText: Optional[str] = None
        """
        HTTP request headers text.
        """

    class TypeWebSocketFrame(BaseModel):
        """
        WebSocket message data. This represents an entire WebSocket message, not just a fragmented frame as the name suggests.
        """

        opcode: Union[float, int]
        """
        WebSocket message opcode.
        """
        mask: bool
        """
        WebSocket message mask.
        """
        payloadData: str
        """
        WebSocket message payload data.
If the opcode is 1, this is a text message and payloadData is a UTF-8 string.
If the opcode isn't 1, then payloadData is a base64 encoded string representing binary data.
        """

    class TypeCachedResource(BaseModel):
        """
        Information about the cached resource.
        """

        url: str
        """
        Resource URL. This is the url of the original network request.
        """
        type: "Network.TypeResourceType"
        """
        Type of this resource.
        """
        response: Optional["Network.TypeResponse"] = None
        """
        Cached response data.
        """
        bodySize: Union[float, int]
        """
        Cached response body size.
        """

    class TypeInitiator(BaseModel):
        """
        Information about the request initiator.
        """

        type: Literal[
            "parser", "script", "preload", "SignedExchange", "preflight", "other"
        ]
        """
        Type of this initiator.
        """
        stack: Optional["Runtime.TypeStackTrace"] = None
        """
        Initiator JavaScript stack trace, set for Script only.
        """
        url: Optional[str] = None
        """
        Initiator URL, set for Parser type or for Script type (when script is importing module) or for SignedExchange type.
        """
        lineNumber: Optional[Union[float, int]] = None
        """
        Initiator line number, set for Parser type or for Script type (when script is importing
module) (0-based).
        """
        columnNumber: Optional[Union[float, int]] = None
        """
        Initiator column number, set for Parser type or for Script type (when script is importing
module) (0-based).
        """
        requestId: Optional["Network.TypeRequestId"] = None
        """
        Set if another request triggered this request (e.g. preflight).
        """

    class TypeCookiePartitionKey(BaseModel):
        """
                cookiePartitionKey object
        The representation of the components of the key that are created by the cookiePartitionKey class contained in net/cookies/cookie_partition_key.h.
        """

        topLevelSite: str
        """
        The site of the top-level URL the browser was visiting at the start
of the request to the endpoint that set the cookie.
        """
        hasCrossSiteAncestor: bool
        """
        Indicates if the cookie has any ancestors that are cross-site to the topLevelSite.
        """

    class TypeCookie(BaseModel):
        """
        Cookie object
        """

        name: str
        """
        Cookie name.
        """
        value: str
        """
        Cookie value.
        """
        domain: str
        """
        Cookie domain.
        """
        path: str
        """
        Cookie path.
        """
        expires: Union[float, int]
        """
        Cookie expiration date as the number of seconds since the UNIX epoch.
        """
        size: Union[float, int]
        """
        Cookie size.
        """
        httpOnly: bool
        """
        True if cookie is http-only.
        """
        secure: bool
        """
        True if cookie is secure.
        """
        session: bool
        """
        True in case of session cookie.
        """
        sameSite: Optional["Network.TypeCookieSameSite"] = None
        """
        Cookie SameSite type.
        """
        priority: "Network.TypeCookiePriority"
        """
        Cookie Priority
        """
        sameParty: bool
        """
        True if cookie is SameParty.
        """
        sourceScheme: "Network.TypeCookieSourceScheme"
        """
        Cookie source scheme type.
        """
        sourcePort: Union[float, int]
        """
        Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port.
An unspecified port value allows protocol clients to emulate legacy cookie scope for the port.
This is a temporary ability and it will be removed in the future.
        """
        partitionKey: Optional["Network.TypeCookiePartitionKey"] = None
        """
        Cookie partition key.
        """
        partitionKeyOpaque: Optional[bool] = None
        """
        True if cookie partition key is opaque.
        """

    class TypeSetCookieBlockedReason(str, Enum):
        """
        Types of reasons why a cookie may not be stored from a response.
        """

        SecureOnly = "SecureOnly"
        SameSiteStrict = "SameSiteStrict"
        SameSiteLax = "SameSiteLax"
        SameSiteUnspecifiedTreatedAsLax = "SameSiteUnspecifiedTreatedAsLax"
        SameSiteNoneInsecure = "SameSiteNoneInsecure"
        UserPreferences = "UserPreferences"
        ThirdPartyPhaseout = "ThirdPartyPhaseout"
        ThirdPartyBlockedInFirstPartySet = "ThirdPartyBlockedInFirstPartySet"
        SyntaxError = "SyntaxError"
        SchemeNotSupported = "SchemeNotSupported"
        OverwriteSecure = "OverwriteSecure"
        InvalidDomain = "InvalidDomain"
        InvalidPrefix = "InvalidPrefix"
        UnknownError = "UnknownError"
        SchemefulSameSiteStrict = "SchemefulSameSiteStrict"
        SchemefulSameSiteLax = "SchemefulSameSiteLax"
        SchemefulSameSiteUnspecifiedTreatedAsLax = (
            "SchemefulSameSiteUnspecifiedTreatedAsLax"
        )
        SamePartyFromCrossPartyContext = "SamePartyFromCrossPartyContext"
        SamePartyConflictsWithOtherAttributes = "SamePartyConflictsWithOtherAttributes"
        NameValuePairExceedsMaxSize = "NameValuePairExceedsMaxSize"
        DisallowedCharacter = "DisallowedCharacter"
        NoCookieContent = "NoCookieContent"

    class TypeCookieBlockedReason(str, Enum):
        """
        Types of reasons why a cookie may not be sent with a request.
        """

        SecureOnly = "SecureOnly"
        NotOnPath = "NotOnPath"
        DomainMismatch = "DomainMismatch"
        SameSiteStrict = "SameSiteStrict"
        SameSiteLax = "SameSiteLax"
        SameSiteUnspecifiedTreatedAsLax = "SameSiteUnspecifiedTreatedAsLax"
        SameSiteNoneInsecure = "SameSiteNoneInsecure"
        UserPreferences = "UserPreferences"
        ThirdPartyPhaseout = "ThirdPartyPhaseout"
        ThirdPartyBlockedInFirstPartySet = "ThirdPartyBlockedInFirstPartySet"
        UnknownError = "UnknownError"
        SchemefulSameSiteStrict = "SchemefulSameSiteStrict"
        SchemefulSameSiteLax = "SchemefulSameSiteLax"
        SchemefulSameSiteUnspecifiedTreatedAsLax = (
            "SchemefulSameSiteUnspecifiedTreatedAsLax"
        )
        SamePartyFromCrossPartyContext = "SamePartyFromCrossPartyContext"
        NameValuePairExceedsMaxSize = "NameValuePairExceedsMaxSize"

    class TypeCookieExemptionReason(str, Enum):
        """
        Types of reasons why a cookie should have been blocked by 3PCD but is exempted for the request.
        """

        NONE = "None"
        UserSetting = "UserSetting"
        TPCDMetadata = "TPCDMetadata"
        TPCDDeprecationTrial = "TPCDDeprecationTrial"
        TPCDHeuristics = "TPCDHeuristics"
        EnterprisePolicy = "EnterprisePolicy"
        StorageAccess = "StorageAccess"
        TopLevelStorageAccess = "TopLevelStorageAccess"
        CorsOptIn = "CorsOptIn"
        Scheme = "Scheme"

    class TypeBlockedSetCookieWithReason(BaseModel):
        """
        A cookie which was not stored from a response with the corresponding reason.
        """

        blockedReasons: list[Any]
        """
        The reason(s) this cookie was blocked.
        """
        cookieLine: str
        """
        The string representing this individual cookie as it would appear in the header.
This is not the entire "cookie" or "set-cookie" header which could have multiple cookies.
        """
        cookie: Optional["Network.TypeCookie"] = None
        """
        The cookie object which represents the cookie which was not stored. It is optional because
sometimes complete cookie information is not available, such as in the case of parsing
errors.
        """

    class TypeExemptedSetCookieWithReason(BaseModel):
        """
                A cookie should have been blocked by 3PCD but is exempted and stored from a response with the
        corresponding reason. A cookie could only have at most one exemption reason.
        """

        exemptionReason: "Network.TypeCookieExemptionReason"
        """
        The reason the cookie was exempted.
        """
        cookieLine: str
        """
        The string representing this individual cookie as it would appear in the header.
        """
        cookie: "Network.TypeCookie"
        """
        The cookie object representing the cookie.
        """

    class TypeAssociatedCookie(BaseModel):
        """
                A cookie associated with the request which may or may not be sent with it.
        Includes the cookies itself and reasons for blocking or exemption.
        """

        cookie: "Network.TypeCookie"
        """
        The cookie object representing the cookie which was not sent.
        """
        blockedReasons: list[Any]
        """
        The reason(s) the cookie was blocked. If empty means the cookie is included.
        """
        exemptionReason: Optional["Network.TypeCookieExemptionReason"] = None
        """
        The reason the cookie should have been blocked by 3PCD but is exempted. A cookie could
only have at most one exemption reason.
        """

    class TypeCookieParam(BaseModel):
        """
        Cookie parameter object
        """

        name: str
        """
        Cookie name.
        """
        value: str
        """
        Cookie value.
        """
        url: Optional[str] = None
        """
        The request-URI to associate with the setting of the cookie. This value can affect the
default domain, path, source port, and source scheme values of the created cookie.
        """
        domain: Optional[str] = None
        """
        Cookie domain.
        """
        path: Optional[str] = None
        """
        Cookie path.
        """
        secure: Optional[bool] = None
        """
        True if cookie is secure.
        """
        httpOnly: Optional[bool] = None
        """
        True if cookie is http-only.
        """
        sameSite: Optional["Network.TypeCookieSameSite"] = None
        """
        Cookie SameSite type.
        """
        expires: Optional["Network.TypeTimeSinceEpoch"] = None
        """
        Cookie expiration date, session cookie if not set
        """
        priority: Optional["Network.TypeCookiePriority"] = None
        """
        Cookie Priority.
        """
        sameParty: Optional[bool] = None
        """
        True if cookie is SameParty.
        """
        sourceScheme: Optional["Network.TypeCookieSourceScheme"] = None
        """
        Cookie source scheme type.
        """
        sourcePort: Optional[Union[float, int]] = None
        """
        Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port.
An unspecified port value allows protocol clients to emulate legacy cookie scope for the port.
This is a temporary ability and it will be removed in the future.
        """
        partitionKey: Optional["Network.TypeCookiePartitionKey"] = None
        """
        Cookie partition key. If not set, the cookie will be set as not partitioned.
        """

    class TypeAuthChallenge(BaseModel):
        """
        Authorization challenge for HTTP status code 401 or 407.
        """

        source: Optional[Literal["Server", "Proxy"]] = None
        """
        Source of the authentication challenge.
        """
        origin: str
        """
        Origin of the challenger.
        """
        scheme: str
        """
        The authentication scheme used, such as basic or digest
        """
        realm: str
        """
        The realm of the challenge. May be empty.
        """

    class TypeAuthChallengeResponse(BaseModel):
        """
        Response to an AuthChallenge.
        """

        response: Literal["Default", "CancelAuth", "ProvideCredentials"]
        """
        The decision on what to do in response to the authorization challenge.  Default means
deferring to the default behavior of the net stack, which will likely either the Cancel
authentication or display a popup dialog box.
        """
        username: Optional[str] = None
        """
        The username to provide, possibly empty. Should only be set if response is
ProvideCredentials.
        """
        password: Optional[str] = None
        """
        The password to provide, possibly empty. Should only be set if response is
ProvideCredentials.
        """

    class TypeInterceptionStage(str, Enum):
        """
                Stages of the interception to begin intercepting. Request will intercept before the request is
        sent. Response will intercept after the response is received.
        """

        Request = "Request"
        HeadersReceived = "HeadersReceived"

    class TypeRequestPattern(BaseModel):
        """
        Request pattern for interception.
        """

        urlPattern: Optional[str] = None
        """
        Wildcards (`'*'` -> zero or more, `'?'` -> exactly one) are allowed. Escape character is
backslash. Omitting is equivalent to `"*"`.
        """
        resourceType: Optional["Network.TypeResourceType"] = None
        """
        If set, only requests for matching resource types will be intercepted.
        """
        interceptionStage: Optional["Network.TypeInterceptionStage"] = None
        """
        Stage at which to begin intercepting requests. Default is Request.
        """

    class TypeSignedExchangeSignature(BaseModel):
        """
                Information about a signed exchange signature.
        https://wicg.github.io/webpackage/draft-yasskin-httpbis-origin-signed-exchanges-impl.html#rfc.section.3.1
        """

        label: str
        """
        Signed exchange signature label.
        """
        signature: str
        """
        The hex string of signed exchange signature.
        """
        integrity: str
        """
        Signed exchange signature integrity.
        """
        certUrl: Optional[str] = None
        """
        Signed exchange signature cert Url.
        """
        certSha256: Optional[str] = None
        """
        The hex string of signed exchange signature cert sha256.
        """
        validityUrl: str
        """
        Signed exchange signature validity Url.
        """
        date: Union[float, int]
        """
        Signed exchange signature date.
        """
        expires: Union[float, int]
        """
        Signed exchange signature expires.
        """
        certificates: Optional[list[Any]] = None
        """
        The encoded certificates.
        """

    class TypeSignedExchangeHeader(BaseModel):
        """
                Information about a signed exchange header.
        https://wicg.github.io/webpackage/draft-yasskin-httpbis-origin-signed-exchanges-impl.html#cbor-representation
        """

        requestUrl: str
        """
        Signed exchange request URL.
        """
        responseCode: Union[float, int]
        """
        Signed exchange response code.
        """
        responseHeaders: "Network.TypeHeaders"
        """
        Signed exchange response headers.
        """
        signatures: list[Any]
        """
        Signed exchange response signature.
        """
        headerIntegrity: str
        """
        Signed exchange header integrity hash in the form of `sha256-<base64-hash-value>`.
        """

    class TypeSignedExchangeErrorField(str, Enum):
        """
        Field type for a signed exchange related error.
        """

        signatureSig = "signatureSig"
        signatureIntegrity = "signatureIntegrity"
        signatureCertUrl = "signatureCertUrl"
        signatureCertSha256 = "signatureCertSha256"
        signatureValidityUrl = "signatureValidityUrl"
        signatureTimestamps = "signatureTimestamps"

    class TypeSignedExchangeError(BaseModel):
        """
        Information about a signed exchange response.
        """

        message: str
        """
        Error message.
        """
        signatureIndex: Optional[Union[float, int]] = None
        """
        The index of the signature which caused the error.
        """
        errorField: Optional["Network.TypeSignedExchangeErrorField"] = None
        """
        The field which caused the error.
        """

    class TypeSignedExchangeInfo(BaseModel):
        """
        Information about a signed exchange response.
        """

        outerResponse: "Network.TypeResponse"
        """
        The outer response of signed HTTP exchange which was received from network.
        """
        header: Optional["Network.TypeSignedExchangeHeader"] = None
        """
        Information about the signed exchange header.
        """
        securityDetails: Optional["Network.TypeSecurityDetails"] = None
        """
        Security details for the signed exchange header.
        """
        errors: Optional[list[Any]] = None
        """
        Errors occurred while handling the signed exchange.
        """

    class TypeContentEncoding(str, Enum):
        """
        List of content encodings supported by the backend.
        """

        deflate = "deflate"
        gzip = "gzip"
        br = "br"
        zstd = "zstd"

    class TypePrivateNetworkRequestPolicy(str, Enum):
        Allow = "Allow"
        BlockFromInsecureToMorePrivate = "BlockFromInsecureToMorePrivate"
        WarnFromInsecureToMorePrivate = "WarnFromInsecureToMorePrivate"
        PreflightBlock = "PreflightBlock"
        PreflightWarn = "PreflightWarn"

    class TypeIPAddressSpace(str, Enum):
        Local = "Local"
        Private = "Private"
        Public = "Public"
        Unknown = "Unknown"

    class TypeConnectTiming(BaseModel):
        requestTime: Union[float, int]
        """
        Timing's requestTime is a baseline in seconds, while the other numbers are ticks in
milliseconds relatively to this requestTime. Matches ResourceTiming's requestTime for
the same request (but not for redirected requests).
        """

    class TypeClientSecurityState(BaseModel):
        initiatorIsSecureContext: bool
        initiatorIPAddressSpace: "Network.TypeIPAddressSpace"
        privateNetworkRequestPolicy: "Network.TypePrivateNetworkRequestPolicy"

    class TypeCrossOriginOpenerPolicyValue(str, Enum):
        SameOrigin = "SameOrigin"
        SameOriginAllowPopups = "SameOriginAllowPopups"
        RestrictProperties = "RestrictProperties"
        UnsafeNone = "UnsafeNone"
        SameOriginPlusCoep = "SameOriginPlusCoep"
        RestrictPropertiesPlusCoep = "RestrictPropertiesPlusCoep"

    class TypeCrossOriginOpenerPolicyStatus(BaseModel):
        value: "Network.TypeCrossOriginOpenerPolicyValue"
        reportOnlyValue: "Network.TypeCrossOriginOpenerPolicyValue"
        reportingEndpoint: Optional[str] = None
        reportOnlyReportingEndpoint: Optional[str] = None

    class TypeCrossOriginEmbedderPolicyValue(str, Enum):
        NONE = "None"
        Credentialless = "Credentialless"
        RequireCorp = "RequireCorp"

    class TypeCrossOriginEmbedderPolicyStatus(BaseModel):
        value: "Network.TypeCrossOriginEmbedderPolicyValue"
        reportOnlyValue: "Network.TypeCrossOriginEmbedderPolicyValue"
        reportingEndpoint: Optional[str] = None
        reportOnlyReportingEndpoint: Optional[str] = None

    class TypeContentSecurityPolicySource(str, Enum):
        HTTP = "HTTP"
        Meta = "Meta"

    class TypeContentSecurityPolicyStatus(BaseModel):
        effectiveDirectives: str
        isEnforced: bool
        source: "Network.TypeContentSecurityPolicySource"

    class TypeSecurityIsolationStatus(BaseModel):
        coop: Optional["Network.TypeCrossOriginOpenerPolicyStatus"] = None
        coep: Optional["Network.TypeCrossOriginEmbedderPolicyStatus"] = None
        csp: Optional[list[Any]] = None

    class TypeReportStatus(str, Enum):
        """
        The status of a Reporting API report.
        """

        Queued = "Queued"
        Pending = "Pending"
        MarkedForRemoval = "MarkedForRemoval"
        Success = "Success"

    TypeReportId = TypeVar("TypeReportId", bound=str)

    class TypeReportingApiReport(BaseModel):
        """
        An object representing a report generated by the Reporting API.
        """

        id: "Network.TypeReportId"
        initiatorUrl: str
        """
        The URL of the document that triggered the report.
        """
        destination: str
        """
        The name of the endpoint group that should be used to deliver the report.
        """
        type: str
        """
        The type of the report (specifies the set of data that is contained in the report body).
        """
        timestamp: "Network.TypeTimeSinceEpoch"
        """
        When the report was generated.
        """
        depth: Union[float, int]
        """
        How many uploads deep the related request was.
        """
        completedAttempts: Union[float, int]
        """
        The number of delivery attempts made so far, not including an active attempt.
        """
        body: dict[str, Any]
        status: "Network.TypeReportStatus"

    class TypeReportingApiEndpoint(BaseModel):
        url: str
        """
        The URL of the endpoint to which reports may be delivered.
        """
        groupName: str
        """
        Name of the endpoint group.
        """

    class TypeLoadNetworkResourcePageResult(BaseModel):
        """
        An object providing the result of a network resource load.
        """

        success: bool
        netError: Optional[Union[float, int]] = None
        """
        Optional values used for error reporting.
        """
        netErrorName: Optional[str] = None
        httpStatusCode: Optional[Union[float, int]] = None
        stream: Optional["IO.TypeStreamHandle"] = None
        """
        If successful, one of the following two fields holds the result.
        """
        headers: Optional["Network.TypeHeaders"] = None
        """
        Response headers.
        """

    class TypeLoadNetworkResourceOptions(BaseModel):
        """
                An options object that may be extended later to better support CORS,
        CORB and streaming.
        """

        disableCache: bool
        includeCredentials: bool


class Overlay:
    """
    This domain provides various functionality related to drawing atop the inspected page.
    """

    class TypeSourceOrderConfig(BaseModel):
        """
        Configuration data for drawing the source order of an elements children.
        """

        parentOutlineColor: "DOM.TypeRGBA"
        """
        the color to outline the given element in.
        """
        childOutlineColor: "DOM.TypeRGBA"
        """
        the color to outline the child elements in.
        """

    class TypeGridHighlightConfig(BaseModel):
        """
        Configuration data for the highlighting of Grid elements.
        """

        showGridExtensionLines: Optional[bool] = None
        """
        Whether the extension lines from grid cells to the rulers should be shown (default: false).
        """
        showPositiveLineNumbers: Optional[bool] = None
        """
        Show Positive line number labels (default: false).
        """
        showNegativeLineNumbers: Optional[bool] = None
        """
        Show Negative line number labels (default: false).
        """
        showAreaNames: Optional[bool] = None
        """
        Show area name labels (default: false).
        """
        showLineNames: Optional[bool] = None
        """
        Show line name labels (default: false).
        """
        showTrackSizes: Optional[bool] = None
        """
        Show track size labels (default: false).
        """
        gridBorderColor: Optional["DOM.TypeRGBA"] = None
        """
        The grid container border highlight color (default: transparent).
        """
        cellBorderColor: Optional["DOM.TypeRGBA"] = None
        """
        The cell border color (default: transparent). Deprecated, please use rowLineColor and columnLineColor instead.
        """
        rowLineColor: Optional["DOM.TypeRGBA"] = None
        """
        The row line color (default: transparent).
        """
        columnLineColor: Optional["DOM.TypeRGBA"] = None
        """
        The column line color (default: transparent).
        """
        gridBorderDash: Optional[bool] = None
        """
        Whether the grid border is dashed (default: false).
        """
        cellBorderDash: Optional[bool] = None
        """
        Whether the cell border is dashed (default: false). Deprecated, please us rowLineDash and columnLineDash instead.
        """
        rowLineDash: Optional[bool] = None
        """
        Whether row lines are dashed (default: false).
        """
        columnLineDash: Optional[bool] = None
        """
        Whether column lines are dashed (default: false).
        """
        rowGapColor: Optional["DOM.TypeRGBA"] = None
        """
        The row gap highlight fill color (default: transparent).
        """
        rowHatchColor: Optional["DOM.TypeRGBA"] = None
        """
        The row gap hatching fill color (default: transparent).
        """
        columnGapColor: Optional["DOM.TypeRGBA"] = None
        """
        The column gap highlight fill color (default: transparent).
        """
        columnHatchColor: Optional["DOM.TypeRGBA"] = None
        """
        The column gap hatching fill color (default: transparent).
        """
        areaBorderColor: Optional["DOM.TypeRGBA"] = None
        """
        The named grid areas border color (Default: transparent).
        """
        gridBackgroundColor: Optional["DOM.TypeRGBA"] = None
        """
        The grid container background color (Default: transparent).
        """

    class TypeFlexContainerHighlightConfig(BaseModel):
        """
        Configuration data for the highlighting of Flex container elements.
        """

        containerBorder: Optional["Overlay.TypeLineStyle"] = None
        """
        The style of the container border
        """
        lineSeparator: Optional["Overlay.TypeLineStyle"] = None
        """
        The style of the separator between lines
        """
        itemSeparator: Optional["Overlay.TypeLineStyle"] = None
        """
        The style of the separator between items
        """
        mainDistributedSpace: Optional["Overlay.TypeBoxStyle"] = None
        """
        Style of content-distribution space on the main axis (justify-content).
        """
        crossDistributedSpace: Optional["Overlay.TypeBoxStyle"] = None
        """
        Style of content-distribution space on the cross axis (align-content).
        """
        rowGapSpace: Optional["Overlay.TypeBoxStyle"] = None
        """
        Style of empty space caused by row gaps (gap/row-gap).
        """
        columnGapSpace: Optional["Overlay.TypeBoxStyle"] = None
        """
        Style of empty space caused by columns gaps (gap/column-gap).
        """
        crossAlignment: Optional["Overlay.TypeLineStyle"] = None
        """
        Style of the self-alignment line (align-items).
        """

    class TypeFlexItemHighlightConfig(BaseModel):
        """
        Configuration data for the highlighting of Flex item elements.
        """

        baseSizeBox: Optional["Overlay.TypeBoxStyle"] = None
        """
        Style of the box representing the item's base size
        """
        baseSizeBorder: Optional["Overlay.TypeLineStyle"] = None
        """
        Style of the border around the box representing the item's base size
        """
        flexibilityArrow: Optional["Overlay.TypeLineStyle"] = None
        """
        Style of the arrow representing if the item grew or shrank
        """

    class TypeLineStyle(BaseModel):
        """
        Style information for drawing a line.
        """

        color: Optional["DOM.TypeRGBA"] = None
        """
        The color of the line (default: transparent)
        """
        pattern: Optional[Literal["dashed", "dotted"]] = None
        """
        The line pattern (default: solid)
        """

    class TypeBoxStyle(BaseModel):
        """
        Style information for drawing a box.
        """

        fillColor: Optional["DOM.TypeRGBA"] = None
        """
        The background color for the box (default: transparent)
        """
        hatchColor: Optional["DOM.TypeRGBA"] = None
        """
        The hatching color for the box (default: transparent)
        """

    class TypeContrastAlgorithm(str, Enum):
        aa = "aa"
        aaa = "aaa"
        apca = "apca"

    class TypeHighlightConfig(BaseModel):
        """
        Configuration data for the highlighting of page elements.
        """

        showInfo: Optional[bool] = None
        """
        Whether the node info tooltip should be shown (default: false).
        """
        showStyles: Optional[bool] = None
        """
        Whether the node styles in the tooltip (default: false).
        """
        showRulers: Optional[bool] = None
        """
        Whether the rulers should be shown (default: false).
        """
        showAccessibilityInfo: Optional[bool] = None
        """
        Whether the a11y info should be shown (default: true).
        """
        showExtensionLines: Optional[bool] = None
        """
        Whether the extension lines from node to the rulers should be shown (default: false).
        """
        contentColor: Optional["DOM.TypeRGBA"] = None
        """
        The content box highlight fill color (default: transparent).
        """
        paddingColor: Optional["DOM.TypeRGBA"] = None
        """
        The padding highlight fill color (default: transparent).
        """
        borderColor: Optional["DOM.TypeRGBA"] = None
        """
        The border highlight fill color (default: transparent).
        """
        marginColor: Optional["DOM.TypeRGBA"] = None
        """
        The margin highlight fill color (default: transparent).
        """
        eventTargetColor: Optional["DOM.TypeRGBA"] = None
        """
        The event target element highlight fill color (default: transparent).
        """
        shapeColor: Optional["DOM.TypeRGBA"] = None
        """
        The shape outside fill color (default: transparent).
        """
        shapeMarginColor: Optional["DOM.TypeRGBA"] = None
        """
        The shape margin fill color (default: transparent).
        """
        cssGridColor: Optional["DOM.TypeRGBA"] = None
        """
        The grid layout color (default: transparent).
        """
        colorFormat: Optional["Overlay.TypeColorFormat"] = None
        """
        The color format used to format color styles (default: hex).
        """
        gridHighlightConfig: Optional["Overlay.TypeGridHighlightConfig"] = None
        """
        The grid layout highlight configuration (default: all transparent).
        """
        flexContainerHighlightConfig: Optional[
            "Overlay.TypeFlexContainerHighlightConfig"
        ] = None
        """
        The flex container highlight configuration (default: all transparent).
        """
        flexItemHighlightConfig: Optional["Overlay.TypeFlexItemHighlightConfig"] = None
        """
        The flex item highlight configuration (default: all transparent).
        """
        contrastAlgorithm: Optional["Overlay.TypeContrastAlgorithm"] = None
        """
        The contrast algorithm to use for the contrast ratio (default: aa).
        """
        containerQueryContainerHighlightConfig: Optional[
            "Overlay.TypeContainerQueryContainerHighlightConfig"
        ] = None
        """
        The container query container highlight configuration (default: all transparent).
        """

    class TypeColorFormat(str, Enum):
        rgb = "rgb"
        hsl = "hsl"
        hwb = "hwb"
        hex = "hex"

    class TypeGridNodeHighlightConfig(BaseModel):
        """
        Configurations for Persistent Grid Highlight
        """

        gridHighlightConfig: "Overlay.TypeGridHighlightConfig"
        """
        A descriptor for the highlight appearance.
        """
        nodeId: "DOM.TypeNodeId"
        """
        Identifier of the node to highlight.
        """

    class TypeFlexNodeHighlightConfig(BaseModel):
        flexContainerHighlightConfig: "Overlay.TypeFlexContainerHighlightConfig"
        """
        A descriptor for the highlight appearance of flex containers.
        """
        nodeId: "DOM.TypeNodeId"
        """
        Identifier of the node to highlight.
        """

    class TypeScrollSnapContainerHighlightConfig(BaseModel):
        snapportBorder: Optional["Overlay.TypeLineStyle"] = None
        """
        The style of the snapport border (default: transparent)
        """
        snapAreaBorder: Optional["Overlay.TypeLineStyle"] = None
        """
        The style of the snap area border (default: transparent)
        """
        scrollMarginColor: Optional["DOM.TypeRGBA"] = None
        """
        The margin highlight fill color (default: transparent).
        """
        scrollPaddingColor: Optional["DOM.TypeRGBA"] = None
        """
        The padding highlight fill color (default: transparent).
        """

    class TypeScrollSnapHighlightConfig(BaseModel):
        scrollSnapContainerHighlightConfig: (
            "Overlay.TypeScrollSnapContainerHighlightConfig"
        )
        """
        A descriptor for the highlight appearance of scroll snap containers.
        """
        nodeId: "DOM.TypeNodeId"
        """
        Identifier of the node to highlight.
        """

    class TypeHingeConfig(BaseModel):
        """
        Configuration for dual screen hinge
        """

        rect: "DOM.TypeRect"
        """
        A rectangle represent hinge
        """
        contentColor: Optional["DOM.TypeRGBA"] = None
        """
        The content box highlight fill color (default: a dark color).
        """
        outlineColor: Optional["DOM.TypeRGBA"] = None
        """
        The content box highlight outline color (default: transparent).
        """

    class TypeWindowControlsOverlayConfig(BaseModel):
        """
        Configuration for Window Controls Overlay
        """

        showCSS: bool
        """
        Whether the title bar CSS should be shown when emulating the Window Controls Overlay.
        """
        selectedPlatform: str
        """
        Selected platforms to show the overlay.
        """
        themeColor: str
        """
        The theme color defined in app manifest.
        """

    class TypeContainerQueryHighlightConfig(BaseModel):
        containerQueryContainerHighlightConfig: (
            "Overlay.TypeContainerQueryContainerHighlightConfig"
        )
        """
        A descriptor for the highlight appearance of container query containers.
        """
        nodeId: "DOM.TypeNodeId"
        """
        Identifier of the container node to highlight.
        """

    class TypeContainerQueryContainerHighlightConfig(BaseModel):
        containerBorder: Optional["Overlay.TypeLineStyle"] = None
        """
        The style of the container border.
        """
        descendantBorder: Optional["Overlay.TypeLineStyle"] = None
        """
        The style of the descendants' borders.
        """

    class TypeIsolatedElementHighlightConfig(BaseModel):
        isolationModeHighlightConfig: "Overlay.TypeIsolationModeHighlightConfig"
        """
        A descriptor for the highlight appearance of an element in isolation mode.
        """
        nodeId: "DOM.TypeNodeId"
        """
        Identifier of the isolated element to highlight.
        """

    class TypeIsolationModeHighlightConfig(BaseModel):
        resizerColor: Optional["DOM.TypeRGBA"] = None
        """
        The fill color of the resizers (default: transparent).
        """
        resizerHandleColor: Optional["DOM.TypeRGBA"] = None
        """
        The fill color for resizer handles (default: transparent).
        """
        maskColor: Optional["DOM.TypeRGBA"] = None
        """
        The fill color for the mask covering non-isolated elements (default: transparent).
        """

    class TypeInspectMode(str, Enum):
        searchForNode = "searchForNode"
        searchForUAShadowDOM = "searchForUAShadowDOM"
        captureAreaScreenshot = "captureAreaScreenshot"
        showDistances = "showDistances"
        none = "none"


class Page:
    """
    Actions and events related to the inspected page belong to the page domain.
    """

    TypeFrameId = TypeVar("TypeFrameId", bound=str)
    """
    Unique frame identifier.
    """

    class TypeAdFrameType(str, Enum):
        """
        Indicates whether a frame has been identified as an ad.
        """

        none = "none"
        child = "child"
        root = "root"

    class TypeAdFrameExplanation(str, Enum):
        ParentIsAd = "ParentIsAd"
        CreatedByAdScript = "CreatedByAdScript"
        MatchedBlockingRule = "MatchedBlockingRule"

    class TypeAdFrameStatus(BaseModel):
        """
        Indicates whether a frame has been identified as an ad and why.
        """

        adFrameType: "Page.TypeAdFrameType"
        explanations: Optional[list[Any]] = None

    class TypeAdScriptId(BaseModel):
        """
                Identifies the bottom-most script which caused the frame to be labelled
        as an ad.
        """

        scriptId: "Runtime.TypeScriptId"
        """
        Script Id of the bottom-most script which caused the frame to be labelled
as an ad.
        """
        debuggerId: "Runtime.TypeUniqueDebuggerId"
        """
        Id of adScriptId's debugger.
        """

    class TypeSecureContextType(str, Enum):
        """
        Indicates whether the frame is a secure context and why it is the case.
        """

        Secure = "Secure"
        SecureLocalhost = "SecureLocalhost"
        InsecureScheme = "InsecureScheme"
        InsecureAncestor = "InsecureAncestor"

    class TypeCrossOriginIsolatedContextType(str, Enum):
        """
        Indicates whether the frame is cross-origin isolated and why it is the case.
        """

        Isolated = "Isolated"
        NotIsolated = "NotIsolated"
        NotIsolatedFeatureDisabled = "NotIsolatedFeatureDisabled"

    class TypeGatedAPIFeatures(str, Enum):
        SharedArrayBuffers = "SharedArrayBuffers"
        SharedArrayBuffersTransferAllowed = "SharedArrayBuffersTransferAllowed"
        PerformanceMeasureMemory = "PerformanceMeasureMemory"
        PerformanceProfile = "PerformanceProfile"

    class TypePermissionsPolicyFeature(str, Enum):
        """
                All Permissions Policy features. This enum should match the one defined
        in third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5.
        """

        accelerometer = "accelerometer"
        ambient_light_sensor = "ambient-light-sensor"
        attribution_reporting = "attribution-reporting"
        autoplay = "autoplay"
        bluetooth = "bluetooth"
        browsing_topics = "browsing-topics"
        camera = "camera"
        captured_surface_control = "captured-surface-control"
        ch_dpr = "ch-dpr"
        ch_device_memory = "ch-device-memory"
        ch_downlink = "ch-downlink"
        ch_ect = "ch-ect"
        ch_prefers_color_scheme = "ch-prefers-color-scheme"
        ch_prefers_reduced_motion = "ch-prefers-reduced-motion"
        ch_prefers_reduced_transparency = "ch-prefers-reduced-transparency"
        ch_rtt = "ch-rtt"
        ch_save_data = "ch-save-data"
        ch_ua = "ch-ua"
        ch_ua_arch = "ch-ua-arch"
        ch_ua_bitness = "ch-ua-bitness"
        ch_ua_platform = "ch-ua-platform"
        ch_ua_model = "ch-ua-model"
        ch_ua_mobile = "ch-ua-mobile"
        ch_ua_form_factors = "ch-ua-form-factors"
        ch_ua_full_version = "ch-ua-full-version"
        ch_ua_full_version_list = "ch-ua-full-version-list"
        ch_ua_platform_version = "ch-ua-platform-version"
        ch_ua_wow64 = "ch-ua-wow64"
        ch_viewport_height = "ch-viewport-height"
        ch_viewport_width = "ch-viewport-width"
        ch_width = "ch-width"
        clipboard_read = "clipboard-read"
        clipboard_write = "clipboard-write"
        compute_pressure = "compute-pressure"
        cross_origin_isolated = "cross-origin-isolated"
        deferred_fetch = "deferred-fetch"
        direct_sockets = "direct-sockets"
        display_capture = "display-capture"
        document_domain = "document-domain"
        encrypted_media = "encrypted-media"
        execution_while_out_of_viewport = "execution-while-out-of-viewport"
        execution_while_not_rendered = "execution-while-not-rendered"
        focus_without_user_activation = "focus-without-user-activation"
        fullscreen = "fullscreen"
        frobulate = "frobulate"
        gamepad = "gamepad"
        geolocation = "geolocation"
        gyroscope = "gyroscope"
        hid = "hid"
        identity_credentials_get = "identity-credentials-get"
        idle_detection = "idle-detection"
        interest_cohort = "interest-cohort"
        join_ad_interest_group = "join-ad-interest-group"
        keyboard_map = "keyboard-map"
        local_fonts = "local-fonts"
        magnetometer = "magnetometer"
        microphone = "microphone"
        midi = "midi"
        otp_credentials = "otp-credentials"
        payment = "payment"
        picture_in_picture = "picture-in-picture"
        private_aggregation = "private-aggregation"
        private_state_token_issuance = "private-state-token-issuance"
        private_state_token_redemption = "private-state-token-redemption"
        publickey_credentials_create = "publickey-credentials-create"
        publickey_credentials_get = "publickey-credentials-get"
        run_ad_auction = "run-ad-auction"
        screen_wake_lock = "screen-wake-lock"
        serial = "serial"
        shared_autofill = "shared-autofill"
        shared_storage = "shared-storage"
        shared_storage_select_url = "shared-storage-select-url"
        smart_card = "smart-card"
        speaker_selection = "speaker-selection"
        storage_access = "storage-access"
        sub_apps = "sub-apps"
        sync_xhr = "sync-xhr"
        unload = "unload"
        usb = "usb"
        usb_unrestricted = "usb-unrestricted"
        vertical_scroll = "vertical-scroll"
        web_printing = "web-printing"
        web_share = "web-share"
        window_management = "window-management"
        xr_spatial_tracking = "xr-spatial-tracking"

    class TypePermissionsPolicyBlockReason(str, Enum):
        """
        Reason for a permissions policy feature to be disabled.
        """

        Header = "Header"
        IframeAttribute = "IframeAttribute"
        InFencedFrameTree = "InFencedFrameTree"
        InIsolatedApp = "InIsolatedApp"

    class TypePermissionsPolicyBlockLocator(BaseModel):
        frameId: "Page.TypeFrameId"
        blockReason: "Page.TypePermissionsPolicyBlockReason"

    class TypePermissionsPolicyFeatureState(BaseModel):
        feature: "Page.TypePermissionsPolicyFeature"
        allowed: bool
        locator: Optional["Page.TypePermissionsPolicyBlockLocator"] = None

    class TypeOriginTrialTokenStatus(str, Enum):
        """
                Origin Trial(https://www.chromium.org/blink/origin-trials) support.
        Status for an Origin Trial token.
        """

        Success = "Success"
        NotSupported = "NotSupported"
        Insecure = "Insecure"
        Expired = "Expired"
        WrongOrigin = "WrongOrigin"
        InvalidSignature = "InvalidSignature"
        Malformed = "Malformed"
        WrongVersion = "WrongVersion"
        FeatureDisabled = "FeatureDisabled"
        TokenDisabled = "TokenDisabled"
        FeatureDisabledForUser = "FeatureDisabledForUser"
        UnknownTrial = "UnknownTrial"

    class TypeOriginTrialStatus(str, Enum):
        """
        Status for an Origin Trial.
        """

        Enabled = "Enabled"
        ValidTokenNotProvided = "ValidTokenNotProvided"
        OSNotSupported = "OSNotSupported"
        TrialNotAllowed = "TrialNotAllowed"

    class TypeOriginTrialUsageRestriction(str, Enum):
        NONE = "None"
        Subset = "Subset"

    class TypeOriginTrialToken(BaseModel):
        origin: str
        matchSubDomains: bool
        trialName: str
        expiryTime: "Network.TypeTimeSinceEpoch"
        isThirdParty: bool
        usageRestriction: "Page.TypeOriginTrialUsageRestriction"

    class TypeOriginTrialTokenWithStatus(BaseModel):
        rawTokenText: str
        parsedToken: Optional["Page.TypeOriginTrialToken"] = None
        """
        `parsedToken` is present only when the token is extractable and
parsable.
        """
        status: "Page.TypeOriginTrialTokenStatus"

    class TypeOriginTrial(BaseModel):
        trialName: str
        status: "Page.TypeOriginTrialStatus"
        tokensWithStatus: list[Any]

    class TypeFrame(BaseModel):
        """
        Information about the Frame on the page.
        """

        id: "Page.TypeFrameId"
        """
        Frame unique identifier.
        """
        parentId: Optional["Page.TypeFrameId"] = None
        """
        Parent frame identifier.
        """
        loaderId: "Network.TypeLoaderId"
        """
        Identifier of the loader associated with this frame.
        """
        name: Optional[str] = None
        """
        Frame's name as specified in the tag.
        """
        url: str
        """
        Frame document's URL without fragment.
        """
        urlFragment: Optional[str] = None
        """
        Frame document's URL fragment including the '#'.
        """
        domainAndRegistry: str
        """
        Frame document's registered domain, taking the public suffixes list into account.
Extracted from the Frame's url.
Example URLs: http://www.google.com/file.html -> "google.com"
              http://a.b.co.uk/file.html      -> "b.co.uk"
        """
        securityOrigin: str
        """
        Frame document's security origin.
        """
        mimeType: str
        """
        Frame document's mimeType as determined by the browser.
        """
        unreachableUrl: Optional[str] = None
        """
        If the frame failed to load, this contains the URL that could not be loaded. Note that unlike url above, this URL may contain a fragment.
        """
        adFrameStatus: Optional["Page.TypeAdFrameStatus"] = None
        """
        Indicates whether this frame was tagged as an ad and why.
        """
        secureContextType: "Page.TypeSecureContextType"
        """
        Indicates whether the main document is a secure context and explains why that is the case.
        """
        crossOriginIsolatedContextType: "Page.TypeCrossOriginIsolatedContextType"
        """
        Indicates whether this is a cross origin isolated context.
        """
        gatedAPIFeatures: list[Any]
        """
        Indicated which gated APIs / features are available.
        """

    class TypeFrameResource(BaseModel):
        """
        Information about the Resource on the page.
        """

        url: str
        """
        Resource URL.
        """
        type: "Network.TypeResourceType"
        """
        Type of this resource.
        """
        mimeType: str
        """
        Resource mimeType as determined by the browser.
        """
        lastModified: Optional["Network.TypeTimeSinceEpoch"] = None
        """
        last-modified timestamp as reported by server.
        """
        contentSize: Optional[Union[float, int]] = None
        """
        Resource content size.
        """
        failed: Optional[bool] = None
        """
        True if the resource failed to load.
        """
        canceled: Optional[bool] = None
        """
        True if the resource was canceled during loading.
        """

    class TypeFrameResourceTree(BaseModel):
        """
        Information about the Frame hierarchy along with their cached resources.
        """

        frame: "Page.TypeFrame"
        """
        Frame information for this tree item.
        """
        childFrames: Optional[list[Any]] = None
        """
        Child frames.
        """
        resources: list[Any]
        """
        Information about frame resources.
        """

    class TypeFrameTree(BaseModel):
        """
        Information about the Frame hierarchy.
        """

        frame: "Page.TypeFrame"
        """
        Frame information for this tree item.
        """
        childFrames: Optional[list[Any]] = None
        """
        Child frames.
        """

    TypeScriptIdentifier = TypeVar("TypeScriptIdentifier", bound=str)
    """
    Unique script identifier.
    """

    class TypeTransitionType(str, Enum):
        """
        Transition type.
        """

        link = "link"
        typed = "typed"
        address_bar = "address_bar"
        auto_bookmark = "auto_bookmark"
        auto_subframe = "auto_subframe"
        manual_subframe = "manual_subframe"
        generated = "generated"
        auto_toplevel = "auto_toplevel"
        form_submit = "form_submit"
        reload = "reload"
        keyword = "keyword"
        keyword_generated = "keyword_generated"
        other = "other"

    class TypeNavigationEntry(BaseModel):
        """
        Navigation history entry.
        """

        id: Union[float, int]
        """
        Unique id of the navigation history entry.
        """
        url: str
        """
        URL of the navigation history entry.
        """
        userTypedURL: str
        """
        URL that the user typed in the url bar.
        """
        title: str
        """
        Title of the navigation history entry.
        """
        transitionType: "Page.TypeTransitionType"
        """
        Transition type.
        """

    class TypeScreencastFrameMetadata(BaseModel):
        """
        Screencast frame metadata.
        """

        offsetTop: Union[float, int]
        """
        Top offset in DIP.
        """
        pageScaleFactor: Union[float, int]
        """
        Page scale factor.
        """
        deviceWidth: Union[float, int]
        """
        Device screen width in DIP.
        """
        deviceHeight: Union[float, int]
        """
        Device screen height in DIP.
        """
        scrollOffsetX: Union[float, int]
        """
        Position of horizontal scroll in CSS pixels.
        """
        scrollOffsetY: Union[float, int]
        """
        Position of vertical scroll in CSS pixels.
        """
        timestamp: Optional["Network.TypeTimeSinceEpoch"] = None
        """
        Frame swap timestamp.
        """

    class TypeDialogType(str, Enum):
        """
        Javascript dialog type.
        """

        alert = "alert"
        confirm = "confirm"
        prompt = "prompt"
        beforeunload = "beforeunload"

    class TypeAppManifestError(BaseModel):
        """
        Error while paring app manifest.
        """

        message: str
        """
        Error message.
        """
        critical: Union[float, int]
        """
        If critical, this is a non-recoverable parse error.
        """
        line: Union[float, int]
        """
        Error line.
        """
        column: Union[float, int]
        """
        Error column.
        """

    class TypeAppManifestParsedProperties(BaseModel):
        """
        Parsed app manifest properties.
        """

        scope: str
        """
        Computed scope value
        """

    class TypeLayoutViewport(BaseModel):
        """
        Layout viewport position and dimensions.
        """

        pageX: Union[float, int]
        """
        Horizontal offset relative to the document (CSS pixels).
        """
        pageY: Union[float, int]
        """
        Vertical offset relative to the document (CSS pixels).
        """
        clientWidth: Union[float, int]
        """
        Width (CSS pixels), excludes scrollbar if present.
        """
        clientHeight: Union[float, int]
        """
        Height (CSS pixels), excludes scrollbar if present.
        """

    class TypeVisualViewport(BaseModel):
        """
        Visual viewport position, dimensions, and scale.
        """

        offsetX: Union[float, int]
        """
        Horizontal offset relative to the layout viewport (CSS pixels).
        """
        offsetY: Union[float, int]
        """
        Vertical offset relative to the layout viewport (CSS pixels).
        """
        pageX: Union[float, int]
        """
        Horizontal offset relative to the document (CSS pixels).
        """
        pageY: Union[float, int]
        """
        Vertical offset relative to the document (CSS pixels).
        """
        clientWidth: Union[float, int]
        """
        Width (CSS pixels), excludes scrollbar if present.
        """
        clientHeight: Union[float, int]
        """
        Height (CSS pixels), excludes scrollbar if present.
        """
        scale: Union[float, int]
        """
        Scale relative to the ideal viewport (size at width=device-width).
        """
        zoom: Optional[Union[float, int]] = None
        """
        Page zoom factor (CSS to device independent pixels ratio).
        """

    class TypeViewport(BaseModel):
        """
        Viewport for capturing screenshot.
        """

        x: Union[float, int]
        """
        X offset in device independent pixels (dip).
        """
        y: Union[float, int]
        """
        Y offset in device independent pixels (dip).
        """
        width: Union[float, int]
        """
        Rectangle width in device independent pixels (dip).
        """
        height: Union[float, int]
        """
        Rectangle height in device independent pixels (dip).
        """
        scale: Union[float, int]
        """
        Page scale factor.
        """

    class TypeFontFamilies(BaseModel):
        """
        Generic font families collection.
        """

        standard: Optional[str] = None
        """
        The standard font-family.
        """
        fixed: Optional[str] = None
        """
        The fixed font-family.
        """
        serif: Optional[str] = None
        """
        The serif font-family.
        """
        sansSerif: Optional[str] = None
        """
        The sansSerif font-family.
        """
        cursive: Optional[str] = None
        """
        The cursive font-family.
        """
        fantasy: Optional[str] = None
        """
        The fantasy font-family.
        """
        math: Optional[str] = None
        """
        The math font-family.
        """

    class TypeScriptFontFamilies(BaseModel):
        """
        Font families collection for a script.
        """

        script: str
        """
        Name of the script which these font families are defined for.
        """
        fontFamilies: "Page.TypeFontFamilies"
        """
        Generic font families collection for the script.
        """

    class TypeFontSizes(BaseModel):
        """
        Default font sizes.
        """

        standard: Optional[Union[float, int]] = None
        """
        Default standard font size.
        """
        fixed: Optional[Union[float, int]] = None
        """
        Default fixed font size.
        """

    class TypeClientNavigationReason(str, Enum):
        formSubmissionGet = "formSubmissionGet"
        formSubmissionPost = "formSubmissionPost"
        httpHeaderRefresh = "httpHeaderRefresh"
        scriptInitiated = "scriptInitiated"
        metaTagRefresh = "metaTagRefresh"
        pageBlockInterstitial = "pageBlockInterstitial"
        reload = "reload"
        anchorClick = "anchorClick"

    class TypeClientNavigationDisposition(str, Enum):
        currentTab = "currentTab"
        newTab = "newTab"
        newWindow = "newWindow"
        download = "download"

    class TypeInstallabilityErrorArgument(BaseModel):
        name: str
        """
        Argument name (e.g. name:'minimum-icon-size-in-pixels').
        """
        value: str
        """
        Argument value (e.g. value:'64').
        """

    class TypeInstallabilityError(BaseModel):
        """
        The installability error
        """

        errorId: str
        """
        The error id (e.g. 'manifest-missing-suitable-icon').
        """
        errorArguments: list[Any]
        """
        The list of error arguments (e.g. {name:'minimum-icon-size-in-pixels', value:'64'}).
        """

    class TypeReferrerPolicy(str, Enum):
        """
        The referring-policy used for the navigation.
        """

        noReferrer = "noReferrer"
        noReferrerWhenDowngrade = "noReferrerWhenDowngrade"
        origin = "origin"
        originWhenCrossOrigin = "originWhenCrossOrigin"
        sameOrigin = "sameOrigin"
        strictOrigin = "strictOrigin"
        strictOriginWhenCrossOrigin = "strictOriginWhenCrossOrigin"
        unsafeUrl = "unsafeUrl"

    class TypeCompilationCacheParams(BaseModel):
        """
        Per-script compilation cache parameters for `Page.produceCompilationCache`
        """

        url: str
        """
        The URL of the script to produce a compilation cache entry for.
        """
        eager: Optional[bool] = None
        """
        A hint to the backend whether eager compilation is recommended.
(the actual compilation mode used is upon backend discretion).
        """

    class TypeFileFilter(BaseModel):
        name: Optional[str] = None
        accepts: Optional[list[Any]] = None

    class TypeFileHandler(BaseModel):
        action: str
        name: str
        icons: Optional[list[Any]] = None
        accepts: Optional[list[Any]] = None
        """
        Mimic a map, name is the key, accepts is the value.
        """
        launchType: str
        """
        Won't repeat the enums, using string for easy comparison. Same as the
other enums below.
        """

    class TypeImageResource(BaseModel):
        """
        The image definition used in both icon and screenshot.
        """

        url: str
        """
        The src field in the definition, but changing to url in favor of
consistency.
        """
        sizes: Optional[str] = None
        type: Optional[str] = None

    class TypeLaunchHandler(BaseModel):
        clientMode: str

    class TypeProtocolHandler(BaseModel):
        protocol: str
        url: str

    class TypeRelatedApplication(BaseModel):
        id: Optional[str] = None
        url: str

    class TypeScopeExtension(BaseModel):
        origin: str
        """
        Instead of using tuple, this field always returns the serialized string
for easy understanding and comparison.
        """
        hasOriginWildcard: bool

    class TypeScreenshot(BaseModel):
        image: "Page.TypeImageResource"
        formFactor: str
        label: Optional[str] = None

    class TypeShareTarget(BaseModel):
        action: str
        method: str
        enctype: str
        title: Optional[str] = None
        """
        Embed the ShareTargetParams
        """
        text: Optional[str] = None
        url: Optional[str] = None
        files: Optional[list[Any]] = None

    class TypeShortcut(BaseModel):
        name: str
        url: str

    class TypeWebAppManifest(BaseModel):
        backgroundColor: Optional[str] = None
        description: Optional[str] = None
        """
        The extra description provided by the manifest.
        """
        dir: Optional[str] = None
        display: Optional[str] = None
        displayOverrides: Optional[list[Any]] = None
        """
        The overrided display mode controlled by the user.
        """
        fileHandlers: Optional[list[Any]] = None
        """
        The handlers to open files.
        """
        icons: Optional[list[Any]] = None
        id: Optional[str] = None
        lang: Optional[str] = None
        launchHandler: Optional["Page.TypeLaunchHandler"] = None
        """
        TODO(crbug.com/1231886): This field is non-standard and part of a Chrome
experiment. See:
https://github.com/WICG/web-app-launch/blob/main/launch_handler.md
        """
        name: Optional[str] = None
        orientation: Optional[str] = None
        preferRelatedApplications: Optional[bool] = None
        protocolHandlers: Optional[list[Any]] = None
        """
        The handlers to open protocols.
        """
        relatedApplications: Optional[list[Any]] = None
        scope: Optional[str] = None
        scopeExtensions: Optional[list[Any]] = None
        """
        Non-standard, see
https://github.com/WICG/manifest-incubations/blob/gh-pages/scope_extensions-explainer.md
        """
        screenshots: Optional[list[Any]] = None
        """
        The screenshots used by chromium.
        """
        shareTarget: Optional["Page.TypeShareTarget"] = None
        shortName: Optional[str] = None
        shortcuts: Optional[list[Any]] = None
        startUrl: Optional[str] = None
        themeColor: Optional[str] = None

    class TypeAutoResponseMode(str, Enum):
        """
        Enum of possible auto-response for permission / prompt dialogs.
        """

        none = "none"
        autoAccept = "autoAccept"
        autoReject = "autoReject"
        autoOptOut = "autoOptOut"

    class TypeNavigationType(str, Enum):
        """
        The type of a frameNavigated event.
        """

        Navigation = "Navigation"
        BackForwardCacheRestore = "BackForwardCacheRestore"

    class TypeBackForwardCacheNotRestoredReason(str, Enum):
        """
        List of not restored reasons for back-forward cache.
        """

        NotPrimaryMainFrame = "NotPrimaryMainFrame"
        BackForwardCacheDisabled = "BackForwardCacheDisabled"
        RelatedActiveContentsExist = "RelatedActiveContentsExist"
        HTTPStatusNotOK = "HTTPStatusNotOK"
        SchemeNotHTTPOrHTTPS = "SchemeNotHTTPOrHTTPS"
        Loading = "Loading"
        WasGrantedMediaAccess = "WasGrantedMediaAccess"
        DisableForRenderFrameHostCalled = "DisableForRenderFrameHostCalled"
        DomainNotAllowed = "DomainNotAllowed"
        HTTPMethodNotGET = "HTTPMethodNotGET"
        SubframeIsNavigating = "SubframeIsNavigating"
        Timeout = "Timeout"
        CacheLimit = "CacheLimit"
        JavaScriptExecution = "JavaScriptExecution"
        RendererProcessKilled = "RendererProcessKilled"
        RendererProcessCrashed = "RendererProcessCrashed"
        SchedulerTrackedFeatureUsed = "SchedulerTrackedFeatureUsed"
        ConflictingBrowsingInstance = "ConflictingBrowsingInstance"
        CacheFlushed = "CacheFlushed"
        ServiceWorkerVersionActivation = "ServiceWorkerVersionActivation"
        SessionRestored = "SessionRestored"
        ServiceWorkerPostMessage = "ServiceWorkerPostMessage"
        EnteredBackForwardCacheBeforeServiceWorkerHostAdded = (
            "EnteredBackForwardCacheBeforeServiceWorkerHostAdded"
        )
        RenderFrameHostReused_SameSite = "RenderFrameHostReused_SameSite"
        RenderFrameHostReused_CrossSite = "RenderFrameHostReused_CrossSite"
        ServiceWorkerClaim = "ServiceWorkerClaim"
        IgnoreEventAndEvict = "IgnoreEventAndEvict"
        HaveInnerContents = "HaveInnerContents"
        TimeoutPuttingInCache = "TimeoutPuttingInCache"
        BackForwardCacheDisabledByLowMemory = "BackForwardCacheDisabledByLowMemory"
        BackForwardCacheDisabledByCommandLine = "BackForwardCacheDisabledByCommandLine"
        NetworkRequestDatapipeDrainedAsBytesConsumer = (
            "NetworkRequestDatapipeDrainedAsBytesConsumer"
        )
        NetworkRequestRedirected = "NetworkRequestRedirected"
        NetworkRequestTimeout = "NetworkRequestTimeout"
        NetworkExceedsBufferLimit = "NetworkExceedsBufferLimit"
        NavigationCancelledWhileRestoring = "NavigationCancelledWhileRestoring"
        NotMostRecentNavigationEntry = "NotMostRecentNavigationEntry"
        BackForwardCacheDisabledForPrerender = "BackForwardCacheDisabledForPrerender"
        UserAgentOverrideDiffers = "UserAgentOverrideDiffers"
        ForegroundCacheLimit = "ForegroundCacheLimit"
        BrowsingInstanceNotSwapped = "BrowsingInstanceNotSwapped"
        BackForwardCacheDisabledForDelegate = "BackForwardCacheDisabledForDelegate"
        UnloadHandlerExistsInMainFrame = "UnloadHandlerExistsInMainFrame"
        UnloadHandlerExistsInSubFrame = "UnloadHandlerExistsInSubFrame"
        ServiceWorkerUnregistration = "ServiceWorkerUnregistration"
        CacheControlNoStore = "CacheControlNoStore"
        CacheControlNoStoreCookieModified = "CacheControlNoStoreCookieModified"
        CacheControlNoStoreHTTPOnlyCookieModified = (
            "CacheControlNoStoreHTTPOnlyCookieModified"
        )
        NoResponseHead = "NoResponseHead"
        Unknown = "Unknown"
        ActivationNavigationsDisallowedForBug1234857 = (
            "ActivationNavigationsDisallowedForBug1234857"
        )
        ErrorDocument = "ErrorDocument"
        FencedFramesEmbedder = "FencedFramesEmbedder"
        CookieDisabled = "CookieDisabled"
        HTTPAuthRequired = "HTTPAuthRequired"
        CookieFlushed = "CookieFlushed"
        BroadcastChannelOnMessage = "BroadcastChannelOnMessage"
        WebViewSettingsChanged = "WebViewSettingsChanged"
        WebViewJavaScriptObjectChanged = "WebViewJavaScriptObjectChanged"
        WebViewMessageListenerInjected = "WebViewMessageListenerInjected"
        WebViewSafeBrowsingAllowlistChanged = "WebViewSafeBrowsingAllowlistChanged"
        WebViewDocumentStartJavascriptChanged = "WebViewDocumentStartJavascriptChanged"
        WebSocket = "WebSocket"
        WebTransport = "WebTransport"
        WebRTC = "WebRTC"
        MainResourceHasCacheControlNoStore = "MainResourceHasCacheControlNoStore"
        MainResourceHasCacheControlNoCache = "MainResourceHasCacheControlNoCache"
        SubresourceHasCacheControlNoStore = "SubresourceHasCacheControlNoStore"
        SubresourceHasCacheControlNoCache = "SubresourceHasCacheControlNoCache"
        ContainsPlugins = "ContainsPlugins"
        DocumentLoaded = "DocumentLoaded"
        OutstandingNetworkRequestOthers = "OutstandingNetworkRequestOthers"
        RequestedMIDIPermission = "RequestedMIDIPermission"
        RequestedAudioCapturePermission = "RequestedAudioCapturePermission"
        RequestedVideoCapturePermission = "RequestedVideoCapturePermission"
        RequestedBackForwardCacheBlockedSensors = (
            "RequestedBackForwardCacheBlockedSensors"
        )
        RequestedBackgroundWorkPermission = "RequestedBackgroundWorkPermission"
        BroadcastChannel = "BroadcastChannel"
        WebXR = "WebXR"
        SharedWorker = "SharedWorker"
        WebLocks = "WebLocks"
        WebHID = "WebHID"
        WebShare = "WebShare"
        RequestedStorageAccessGrant = "RequestedStorageAccessGrant"
        WebNfc = "WebNfc"
        OutstandingNetworkRequestFetch = "OutstandingNetworkRequestFetch"
        OutstandingNetworkRequestXHR = "OutstandingNetworkRequestXHR"
        AppBanner = "AppBanner"
        Printing = "Printing"
        WebDatabase = "WebDatabase"
        PictureInPicture = "PictureInPicture"
        Portal = "Portal"
        SpeechRecognizer = "SpeechRecognizer"
        IdleManager = "IdleManager"
        PaymentManager = "PaymentManager"
        SpeechSynthesis = "SpeechSynthesis"
        KeyboardLock = "KeyboardLock"
        WebOTPService = "WebOTPService"
        OutstandingNetworkRequestDirectSocket = "OutstandingNetworkRequestDirectSocket"
        InjectedJavascript = "InjectedJavascript"
        InjectedStyleSheet = "InjectedStyleSheet"
        KeepaliveRequest = "KeepaliveRequest"
        IndexedDBEvent = "IndexedDBEvent"
        Dummy = "Dummy"
        JsNetworkRequestReceivedCacheControlNoStoreResource = (
            "JsNetworkRequestReceivedCacheControlNoStoreResource"
        )
        WebRTCSticky = "WebRTCSticky"
        WebTransportSticky = "WebTransportSticky"
        WebSocketSticky = "WebSocketSticky"
        SmartCard = "SmartCard"
        LiveMediaStreamTrack = "LiveMediaStreamTrack"
        UnloadHandler = "UnloadHandler"
        ParserAborted = "ParserAborted"
        ContentSecurityHandler = "ContentSecurityHandler"
        ContentWebAuthenticationAPI = "ContentWebAuthenticationAPI"
        ContentFileChooser = "ContentFileChooser"
        ContentSerial = "ContentSerial"
        ContentFileSystemAccess = "ContentFileSystemAccess"
        ContentMediaDevicesDispatcherHost = "ContentMediaDevicesDispatcherHost"
        ContentWebBluetooth = "ContentWebBluetooth"
        ContentWebUSB = "ContentWebUSB"
        ContentMediaSessionService = "ContentMediaSessionService"
        ContentScreenReader = "ContentScreenReader"
        EmbedderPopupBlockerTabHelper = "EmbedderPopupBlockerTabHelper"
        EmbedderSafeBrowsingTriggeredPopupBlocker = (
            "EmbedderSafeBrowsingTriggeredPopupBlocker"
        )
        EmbedderSafeBrowsingThreatDetails = "EmbedderSafeBrowsingThreatDetails"
        EmbedderAppBannerManager = "EmbedderAppBannerManager"
        EmbedderDomDistillerViewerSource = "EmbedderDomDistillerViewerSource"
        EmbedderDomDistillerSelfDeletingRequestDelegate = (
            "EmbedderDomDistillerSelfDeletingRequestDelegate"
        )
        EmbedderOomInterventionTabHelper = "EmbedderOomInterventionTabHelper"
        EmbedderOfflinePage = "EmbedderOfflinePage"
        EmbedderChromePasswordManagerClientBindCredentialManager = (
            "EmbedderChromePasswordManagerClientBindCredentialManager"
        )
        EmbedderPermissionRequestManager = "EmbedderPermissionRequestManager"
        EmbedderModalDialog = "EmbedderModalDialog"
        EmbedderExtensions = "EmbedderExtensions"
        EmbedderExtensionMessaging = "EmbedderExtensionMessaging"
        EmbedderExtensionMessagingForOpenPort = "EmbedderExtensionMessagingForOpenPort"
        EmbedderExtensionSentMessageToCachedFrame = (
            "EmbedderExtensionSentMessageToCachedFrame"
        )
        RequestedByWebViewClient = "RequestedByWebViewClient"

    class TypeBackForwardCacheNotRestoredReasonType(str, Enum):
        """
        Types of not restored reasons for back-forward cache.
        """

        SupportPending = "SupportPending"
        PageSupportNeeded = "PageSupportNeeded"
        Circumstantial = "Circumstantial"

    class TypeBackForwardCacheBlockingDetails(BaseModel):
        url: Optional[str] = None
        """
        Url of the file where blockage happened. Optional because of tests.
        """
        function: Optional[str] = None
        """
        Function name where blockage happened. Optional because of anonymous functions and tests.
        """
        lineNumber: Union[float, int]
        """
        Line number in the script (0-based).
        """
        columnNumber: Union[float, int]
        """
        Column number in the script (0-based).
        """

    class TypeBackForwardCacheNotRestoredExplanation(BaseModel):
        type: "Page.TypeBackForwardCacheNotRestoredReasonType"
        """
        Type of the reason
        """
        reason: "Page.TypeBackForwardCacheNotRestoredReason"
        """
        Not restored reason
        """
        context: Optional[str] = None
        """
        Context associated with the reason. The meaning of this context is
dependent on the reason:
- EmbedderExtensionSentMessageToCachedFrame: the extension ID.
        """
        details: Optional[list[Any]] = None

    class TypeBackForwardCacheNotRestoredExplanationTree(BaseModel):
        url: str
        """
        URL of each frame
        """
        explanations: list[Any]
        """
        Not restored reasons of each frame
        """
        children: list[Any]
        """
        Array of children frame
        """


class Performance:
    class TypeMetric(BaseModel):
        """
        Run-time execution metric.
        """

        name: str
        """
        Metric name.
        """
        value: Union[float, int]
        """
        Metric value.
        """


class PerformanceTimeline:
    """
        Reporting of performance timeline events, as specified in
    https://w3c.github.io/performance-timeline/#dom-performanceobserver.
    """

    class TypeLargestContentfulPaint(BaseModel):
        """
        See https://github.com/WICG/LargestContentfulPaint and largest_contentful_paint.idl
        """

        renderTime: "Network.TypeTimeSinceEpoch"
        loadTime: "Network.TypeTimeSinceEpoch"
        size: Union[float, int]
        """
        The number of pixels being painted.
        """
        elementId: Optional[str] = None
        """
        The id attribute of the element, if available.
        """
        url: Optional[str] = None
        """
        The URL of the image (may be trimmed).
        """
        nodeId: Optional["DOM.TypeBackendNodeId"] = None

    class TypeLayoutShiftAttribution(BaseModel):
        previousRect: "DOM.TypeRect"
        currentRect: "DOM.TypeRect"
        nodeId: Optional["DOM.TypeBackendNodeId"] = None

    class TypeLayoutShift(BaseModel):
        """
        See https://wicg.github.io/layout-instability/#sec-layout-shift and layout_shift.idl
        """

        value: Union[float, int]
        """
        Score increment produced by this event.
        """
        hadRecentInput: bool
        lastInputTime: "Network.TypeTimeSinceEpoch"
        sources: list[Any]

    class TypeTimelineEvent(BaseModel):
        frameId: "Page.TypeFrameId"
        """
        Identifies the frame that this event is related to. Empty for non-frame targets.
        """
        type: str
        """
        The event type, as specified in https://w3c.github.io/performance-timeline/#dom-performanceentry-entrytype
This determines which of the optional "details" fields is present.
        """
        name: str
        """
        Name may be empty depending on the type.
        """
        time: "Network.TypeTimeSinceEpoch"
        """
        Time in seconds since Epoch, monotonically increasing within document lifetime.
        """
        duration: Optional[Union[float, int]] = None
        """
        Event duration, if applicable.
        """
        lcpDetails: Optional["PerformanceTimeline.TypeLargestContentfulPaint"] = None
        layoutShiftDetails: Optional["PerformanceTimeline.TypeLayoutShift"] = None


class Security:
    """
    Security
    """

    TypeCertificateId = TypeVar("TypeCertificateId", bound=Union[float, int])
    """
    An internal certificate ID value.
    """

    class TypeMixedContentType(str, Enum):
        """
                A description of mixed content (HTTP resources on HTTPS pages), as defined by
        https://www.w3.org/TR/mixed-content/#categories
        """

        blockable = "blockable"
        optionally_blockable = "optionally-blockable"
        none = "none"

    class TypeSecurityState(str, Enum):
        """
        The security level of a page or resource.
        """

        unknown = "unknown"
        neutral = "neutral"
        insecure = "insecure"
        secure = "secure"
        info = "info"
        insecure_broken = "insecure-broken"

    class TypeCertificateSecurityState(BaseModel):
        """
        Details about the security state of the page certificate.
        """

        protocol: str
        """
        Protocol name (e.g. "TLS 1.2" or "QUIC").
        """
        keyExchange: str
        """
        Key Exchange used by the connection, or the empty string if not applicable.
        """
        keyExchangeGroup: Optional[str] = None
        """
        (EC)DH group used by the connection, if applicable.
        """
        cipher: str
        """
        Cipher name.
        """
        mac: Optional[str] = None
        """
        TLS MAC. Note that AEAD ciphers do not have separate MACs.
        """
        certificate: list[Any]
        """
        Page certificate.
        """
        subjectName: str
        """
        Certificate subject name.
        """
        issuer: str
        """
        Name of the issuing CA.
        """
        validFrom: "Network.TypeTimeSinceEpoch"
        """
        Certificate valid from date.
        """
        validTo: "Network.TypeTimeSinceEpoch"
        """
        Certificate valid to (expiration) date
        """
        certificateNetworkError: Optional[str] = None
        """
        The highest priority network error code, if the certificate has an error.
        """
        certificateHasWeakSignature: bool
        """
        True if the certificate uses a weak signature algorithm.
        """
        certificateHasSha1Signature: bool
        """
        True if the certificate has a SHA1 signature in the chain.
        """
        modernSSL: bool
        """
        True if modern SSL
        """
        obsoleteSslProtocol: bool
        """
        True if the connection is using an obsolete SSL protocol.
        """
        obsoleteSslKeyExchange: bool
        """
        True if the connection is using an obsolete SSL key exchange.
        """
        obsoleteSslCipher: bool
        """
        True if the connection is using an obsolete SSL cipher.
        """
        obsoleteSslSignature: bool
        """
        True if the connection is using an obsolete SSL signature.
        """

    class TypeSafetyTipStatus(str, Enum):
        badReputation = "badReputation"
        lookalike = "lookalike"

    class TypeSafetyTipInfo(BaseModel):
        safetyTipStatus: "Security.TypeSafetyTipStatus"
        """
        Describes whether the page triggers any safety tips or reputation warnings. Default is unknown.
        """
        safeUrl: Optional[str] = None
        """
        The URL the safety tip suggested ("Did you mean?"). Only filled in for lookalike matches.
        """

    class TypeVisibleSecurityState(BaseModel):
        """
        Security state information about the page.
        """

        securityState: "Security.TypeSecurityState"
        """
        The security level of the page.
        """
        certificateSecurityState: Optional["Security.TypeCertificateSecurityState"] = (
            None
        )
        """
        Security state details about the page certificate.
        """
        safetyTipInfo: Optional["Security.TypeSafetyTipInfo"] = None
        """
        The type of Safety Tip triggered on the page. Note that this field will be set even if the Safety Tip UI was not actually shown.
        """
        securityStateIssueIds: list[Any]
        """
        Array of security state issues ids.
        """

    class TypeSecurityStateExplanation(BaseModel):
        """
        An explanation of an factor contributing to the security state.
        """

        securityState: "Security.TypeSecurityState"
        """
        Security state representing the severity of the factor being explained.
        """
        title: str
        """
        Title describing the type of factor.
        """
        summary: str
        """
        Short phrase describing the type of factor.
        """
        description: str
        """
        Full text explanation of the factor.
        """
        mixedContentType: "Security.TypeMixedContentType"
        """
        The type of mixed content described by the explanation.
        """
        certificate: list[Any]
        """
        Page certificate.
        """
        recommendations: Optional[list[Any]] = None
        """
        Recommendations to fix any issues.
        """

    class TypeInsecureContentStatus(BaseModel):
        """
        Information about insecure content on the page.
        """

        ranMixedContent: bool
        """
        Always false.
        """
        displayedMixedContent: bool
        """
        Always false.
        """
        containedMixedForm: bool
        """
        Always false.
        """
        ranContentWithCertErrors: bool
        """
        Always false.
        """
        displayedContentWithCertErrors: bool
        """
        Always false.
        """
        ranInsecureContentStyle: "Security.TypeSecurityState"
        """
        Always set to unknown.
        """
        displayedInsecureContentStyle: "Security.TypeSecurityState"
        """
        Always set to unknown.
        """

    class TypeCertificateErrorAction(str, Enum):
        """
                The action to take when a certificate error occurs. continue will continue processing the
        request and cancel will cancel the request.
        """

        CONTINUE = "continue"
        cancel = "cancel"


class ServiceWorker:
    TypeRegistrationID = TypeVar("TypeRegistrationID", bound=str)

    class TypeServiceWorkerRegistration(BaseModel):
        """
        ServiceWorker registration.
        """

        registrationId: "ServiceWorker.TypeRegistrationID"
        scopeURL: str
        isDeleted: bool

    class TypeServiceWorkerVersionRunningStatus(str, Enum):
        stopped = "stopped"
        starting = "starting"
        running = "running"
        stopping = "stopping"

    class TypeServiceWorkerVersionStatus(str, Enum):
        new = "new"
        installing = "installing"
        installed = "installed"
        activating = "activating"
        activated = "activated"
        redundant = "redundant"

    class TypeServiceWorkerVersion(BaseModel):
        """
        ServiceWorker version.
        """

        versionId: str
        registrationId: "ServiceWorker.TypeRegistrationID"
        scriptURL: str
        runningStatus: "ServiceWorker.TypeServiceWorkerVersionRunningStatus"
        status: "ServiceWorker.TypeServiceWorkerVersionStatus"
        scriptLastModified: Optional[Union[float, int]] = None
        """
        The Last-Modified header value of the main script.
        """
        scriptResponseTime: Optional[Union[float, int]] = None
        """
        The time at which the response headers of the main script were received from the server.
For cached script it is the last time the cache entry was validated.
        """
        controlledClients: Optional[list[Any]] = None
        targetId: Optional["Target.TypeTargetID"] = None
        routerRules: Optional[str] = None

    class TypeServiceWorkerErrorMessage(BaseModel):
        """
        ServiceWorker error message.
        """

        errorMessage: str
        registrationId: "ServiceWorker.TypeRegistrationID"
        versionId: str
        sourceURL: str
        lineNumber: Union[float, int]
        columnNumber: Union[float, int]


class Storage:
    TypeSerializedStorageKey = TypeVar("TypeSerializedStorageKey", bound=str)

    class TypeStorageType(str, Enum):
        """
        Enum of possible storage types.
        """

        appcache = "appcache"
        cookies = "cookies"
        file_systems = "file_systems"
        indexeddb = "indexeddb"
        local_storage = "local_storage"
        shader_cache = "shader_cache"
        websql = "websql"
        service_workers = "service_workers"
        cache_storage = "cache_storage"
        interest_groups = "interest_groups"
        shared_storage = "shared_storage"
        storage_buckets = "storage_buckets"
        all = "all"
        other = "other"

    class TypeUsageForType(BaseModel):
        """
        Usage for a storage type.
        """

        storageType: "Storage.TypeStorageType"
        """
        Name of storage type.
        """
        usage: Union[float, int]
        """
        Storage usage (bytes).
        """

    class TypeTrustTokens(BaseModel):
        """
                Pair of issuer origin and number of available (signed, but not used) Trust
        Tokens from that issuer.
        """

        issuerOrigin: str
        count: Union[float, int]

    TypeInterestGroupAuctionId = TypeVar("TypeInterestGroupAuctionId", bound=str)
    """
    Protected audience interest group auction identifier.
    """

    class TypeInterestGroupAccessType(str, Enum):
        """
        Enum of interest group access types.
        """

        join = "join"
        leave = "leave"
        update = "update"
        loaded = "loaded"
        bid = "bid"
        win = "win"
        additionalBid = "additionalBid"
        additionalBidWin = "additionalBidWin"
        topLevelBid = "topLevelBid"
        topLevelAdditionalBid = "topLevelAdditionalBid"
        clear = "clear"

    class TypeInterestGroupAuctionEventType(str, Enum):
        """
        Enum of auction events.
        """

        started = "started"
        configResolved = "configResolved"

    class TypeInterestGroupAuctionFetchType(str, Enum):
        """
        Enum of network fetches auctions can do.
        """

        bidderJs = "bidderJs"
        bidderWasm = "bidderWasm"
        sellerJs = "sellerJs"
        bidderTrustedSignals = "bidderTrustedSignals"
        sellerTrustedSignals = "sellerTrustedSignals"

    class TypeSharedStorageAccessType(str, Enum):
        """
        Enum of shared storage access types.
        """

        documentAddModule = "documentAddModule"
        documentSelectURL = "documentSelectURL"
        documentRun = "documentRun"
        documentSet = "documentSet"
        documentAppend = "documentAppend"
        documentDelete = "documentDelete"
        documentClear = "documentClear"
        documentGet = "documentGet"
        workletSet = "workletSet"
        workletAppend = "workletAppend"
        workletDelete = "workletDelete"
        workletClear = "workletClear"
        workletGet = "workletGet"
        workletKeys = "workletKeys"
        workletEntries = "workletEntries"
        workletLength = "workletLength"
        workletRemainingBudget = "workletRemainingBudget"
        headerSet = "headerSet"
        headerAppend = "headerAppend"
        headerDelete = "headerDelete"
        headerClear = "headerClear"

    class TypeSharedStorageEntry(BaseModel):
        """
        Struct for a single key-value pair in an origin's shared storage.
        """

        key: str
        value: str

    class TypeSharedStorageMetadata(BaseModel):
        """
        Details for an origin's shared storage.
        """

        creationTime: "Network.TypeTimeSinceEpoch"
        """
        Time when the origin's shared storage was last created.
        """
        length: Union[float, int]
        """
        Number of key-value pairs stored in origin's shared storage.
        """
        remainingBudget: Union[float, int]
        """
        Current amount of bits of entropy remaining in the navigation budget.
        """
        bytesUsed: Union[float, int]
        """
        Total number of bytes stored as key-value pairs in origin's shared
storage.
        """

    class TypeSharedStorageReportingMetadata(BaseModel):
        """
        Pair of reporting metadata details for a candidate URL for `selectURL()`.
        """

        eventType: str
        reportingUrl: str

    class TypeSharedStorageUrlWithMetadata(BaseModel):
        """
        Bundles a candidate URL with its reporting metadata.
        """

        url: str
        """
        Spec of candidate URL.
        """
        reportingMetadata: list[Any]
        """
        Any associated reporting metadata.
        """

    class TypeSharedStorageAccessParams(BaseModel):
        """
                Bundles the parameters for shared storage access events whose
        presence/absence can vary according to SharedStorageAccessType.
        """

        scriptSourceUrl: Optional[str] = None
        """
        Spec of the module script URL.
Present only for SharedStorageAccessType.documentAddModule.
        """
        operationName: Optional[str] = None
        """
        Name of the registered operation to be run.
Present only for SharedStorageAccessType.documentRun and
SharedStorageAccessType.documentSelectURL.
        """
        serializedData: Optional[str] = None
        """
        The operation's serialized data in bytes (converted to a string).
Present only for SharedStorageAccessType.documentRun and
SharedStorageAccessType.documentSelectURL.
        """
        urlsWithMetadata: Optional[list[Any]] = None
        """
        Array of candidate URLs' specs, along with any associated metadata.
Present only for SharedStorageAccessType.documentSelectURL.
        """
        key: Optional[str] = None
        """
        Key for a specific entry in an origin's shared storage.
Present only for SharedStorageAccessType.documentSet,
SharedStorageAccessType.documentAppend,
SharedStorageAccessType.documentDelete,
SharedStorageAccessType.workletSet,
SharedStorageAccessType.workletAppend,
SharedStorageAccessType.workletDelete,
SharedStorageAccessType.workletGet,
SharedStorageAccessType.headerSet,
SharedStorageAccessType.headerAppend, and
SharedStorageAccessType.headerDelete.
        """
        value: Optional[str] = None
        """
        Value for a specific entry in an origin's shared storage.
Present only for SharedStorageAccessType.documentSet,
SharedStorageAccessType.documentAppend,
SharedStorageAccessType.workletSet,
SharedStorageAccessType.workletAppend,
SharedStorageAccessType.headerSet, and
SharedStorageAccessType.headerAppend.
        """
        ignoreIfPresent: Optional[bool] = None
        """
        Whether or not to set an entry for a key if that key is already present.
Present only for SharedStorageAccessType.documentSet,
SharedStorageAccessType.workletSet, and
SharedStorageAccessType.headerSet.
        """

    class TypeStorageBucketsDurability(str, Enum):
        relaxed = "relaxed"
        strict = "strict"

    class TypeStorageBucket(BaseModel):
        storageKey: "Storage.TypeSerializedStorageKey"
        name: Optional[str] = None
        """
        If not specified, it is the default bucket of the storageKey.
        """

    class TypeStorageBucketInfo(BaseModel):
        bucket: "Storage.TypeStorageBucket"
        id: str
        expiration: "Network.TypeTimeSinceEpoch"
        quota: Union[float, int]
        """
        Storage quota (bytes).
        """
        persistent: bool
        durability: "Storage.TypeStorageBucketsDurability"

    class TypeAttributionReportingSourceType(str, Enum):
        navigation = "navigation"
        event = "event"

    TypeUnsignedInt64AsBase10 = TypeVar("TypeUnsignedInt64AsBase10", bound=str)

    TypeUnsignedInt128AsBase16 = TypeVar("TypeUnsignedInt128AsBase16", bound=str)

    TypeSignedInt64AsBase10 = TypeVar("TypeSignedInt64AsBase10", bound=str)

    class TypeAttributionReportingFilterDataEntry(BaseModel):
        key: str
        values: list[Any]

    class TypeAttributionReportingFilterConfig(BaseModel):
        filterValues: list[Any]
        lookbackWindow: Optional[Union[float, int]] = None
        """
        duration in seconds
        """

    class TypeAttributionReportingFilterPair(BaseModel):
        filters: list[Any]
        notFilters: list[Any]

    class TypeAttributionReportingAggregationKeysEntry(BaseModel):
        key: str
        value: "Storage.TypeUnsignedInt128AsBase16"

    class TypeAttributionReportingEventReportWindows(BaseModel):
        start: Union[float, int]
        """
        duration in seconds
        """
        ends: list[Any]
        """
        duration in seconds
        """

    class TypeAttributionReportingTriggerSpec(BaseModel):
        triggerData: list[Any]
        """
        number instead of integer because not all uint32 can be represented by
int
        """
        eventReportWindows: "Storage.TypeAttributionReportingEventReportWindows"

    class TypeAttributionReportingTriggerDataMatching(str, Enum):
        exact = "exact"
        modulus = "modulus"

    class TypeAttributionReportingSourceRegistration(BaseModel):
        time: "Network.TypeTimeSinceEpoch"
        expiry: Union[float, int]
        """
        duration in seconds
        """
        triggerSpecs: list[Any]
        aggregatableReportWindow: Union[float, int]
        """
        duration in seconds
        """
        type: "Storage.TypeAttributionReportingSourceType"
        sourceOrigin: str
        reportingOrigin: str
        destinationSites: list[Any]
        eventId: "Storage.TypeUnsignedInt64AsBase10"
        priority: "Storage.TypeSignedInt64AsBase10"
        filterData: list[Any]
        aggregationKeys: list[Any]
        debugKey: Optional["Storage.TypeUnsignedInt64AsBase10"] = None
        triggerDataMatching: "Storage.TypeAttributionReportingTriggerDataMatching"

    class TypeAttributionReportingSourceRegistrationResult(str, Enum):
        success = "success"
        internalError = "internalError"
        insufficientSourceCapacity = "insufficientSourceCapacity"
        insufficientUniqueDestinationCapacity = "insufficientUniqueDestinationCapacity"
        excessiveReportingOrigins = "excessiveReportingOrigins"
        prohibitedByBrowserPolicy = "prohibitedByBrowserPolicy"
        successNoised = "successNoised"
        destinationReportingLimitReached = "destinationReportingLimitReached"
        destinationGlobalLimitReached = "destinationGlobalLimitReached"
        destinationBothLimitsReached = "destinationBothLimitsReached"
        reportingOriginsPerSiteLimitReached = "reportingOriginsPerSiteLimitReached"
        exceedsMaxChannelCapacity = "exceedsMaxChannelCapacity"
        exceedsMaxTriggerStateCardinality = "exceedsMaxTriggerStateCardinality"
        destinationPerDayReportingLimitReached = (
            "destinationPerDayReportingLimitReached"
        )

    class TypeAttributionReportingSourceRegistrationTimeConfig(str, Enum):
        include = "include"
        exclude = "exclude"

    class TypeAttributionReportingAggregatableValueDictEntry(BaseModel):
        key: str
        value: Union[float, int]
        """
        number instead of integer because not all uint32 can be represented by
int
        """

    class TypeAttributionReportingAggregatableValueEntry(BaseModel):
        values: list[Any]
        filters: "Storage.TypeAttributionReportingFilterPair"

    class TypeAttributionReportingEventTriggerData(BaseModel):
        data: "Storage.TypeUnsignedInt64AsBase10"
        priority: "Storage.TypeSignedInt64AsBase10"
        dedupKey: Optional["Storage.TypeUnsignedInt64AsBase10"] = None
        filters: "Storage.TypeAttributionReportingFilterPair"

    class TypeAttributionReportingAggregatableTriggerData(BaseModel):
        keyPiece: "Storage.TypeUnsignedInt128AsBase16"
        sourceKeys: list[Any]
        filters: "Storage.TypeAttributionReportingFilterPair"

    class TypeAttributionReportingAggregatableDedupKey(BaseModel):
        dedupKey: Optional["Storage.TypeUnsignedInt64AsBase10"] = None
        filters: "Storage.TypeAttributionReportingFilterPair"

    class TypeAttributionReportingTriggerRegistration(BaseModel):
        filters: "Storage.TypeAttributionReportingFilterPair"
        debugKey: Optional["Storage.TypeUnsignedInt64AsBase10"] = None
        aggregatableDedupKeys: list[Any]
        eventTriggerData: list[Any]
        aggregatableTriggerData: list[Any]
        aggregatableValues: list[Any]
        debugReporting: bool
        aggregationCoordinatorOrigin: Optional[str] = None
        sourceRegistrationTimeConfig: (
            "Storage.TypeAttributionReportingSourceRegistrationTimeConfig"
        )
        triggerContextId: Optional[str] = None

    class TypeAttributionReportingEventLevelResult(str, Enum):
        success = "success"
        successDroppedLowerPriority = "successDroppedLowerPriority"
        internalError = "internalError"
        noCapacityForAttributionDestination = "noCapacityForAttributionDestination"
        noMatchingSources = "noMatchingSources"
        deduplicated = "deduplicated"
        excessiveAttributions = "excessiveAttributions"
        priorityTooLow = "priorityTooLow"
        neverAttributedSource = "neverAttributedSource"
        excessiveReportingOrigins = "excessiveReportingOrigins"
        noMatchingSourceFilterData = "noMatchingSourceFilterData"
        prohibitedByBrowserPolicy = "prohibitedByBrowserPolicy"
        noMatchingConfigurations = "noMatchingConfigurations"
        excessiveReports = "excessiveReports"
        falselyAttributedSource = "falselyAttributedSource"
        reportWindowPassed = "reportWindowPassed"
        notRegistered = "notRegistered"
        reportWindowNotStarted = "reportWindowNotStarted"
        noMatchingTriggerData = "noMatchingTriggerData"

    class TypeAttributionReportingAggregatableResult(str, Enum):
        success = "success"
        internalError = "internalError"
        noCapacityForAttributionDestination = "noCapacityForAttributionDestination"
        noMatchingSources = "noMatchingSources"
        excessiveAttributions = "excessiveAttributions"
        excessiveReportingOrigins = "excessiveReportingOrigins"
        noHistograms = "noHistograms"
        insufficientBudget = "insufficientBudget"
        noMatchingSourceFilterData = "noMatchingSourceFilterData"
        notRegistered = "notRegistered"
        prohibitedByBrowserPolicy = "prohibitedByBrowserPolicy"
        deduplicated = "deduplicated"
        reportWindowPassed = "reportWindowPassed"
        excessiveReports = "excessiveReports"

    class TypeRelatedWebsiteSet(BaseModel):
        """
        A single Related Website Set object.
        """

        primarySites: list[Any]
        """
        The primary site of this set, along with the ccTLDs if there is any.
        """
        associatedSites: list[Any]
        """
        The associated sites of this set, along with the ccTLDs if there is any.
        """
        serviceSites: list[Any]
        """
        The service sites of this set, along with the ccTLDs if there is any.
        """


class SystemInfo:
    """
    The SystemInfo domain defines methods and events for querying low-level system information.
    """

    class TypeGPUDevice(BaseModel):
        """
        Describes a single graphics processor (GPU).
        """

        vendorId: Union[float, int]
        """
        PCI ID of the GPU vendor, if available; 0 otherwise.
        """
        deviceId: Union[float, int]
        """
        PCI ID of the GPU device, if available; 0 otherwise.
        """
        subSysId: Optional[Union[float, int]] = None
        """
        Sub sys ID of the GPU, only available on Windows.
        """
        revision: Optional[Union[float, int]] = None
        """
        Revision of the GPU, only available on Windows.
        """
        vendorString: str
        """
        String description of the GPU vendor, if the PCI ID is not available.
        """
        deviceString: str
        """
        String description of the GPU device, if the PCI ID is not available.
        """
        driverVendor: str
        """
        String description of the GPU driver vendor.
        """
        driverVersion: str
        """
        String description of the GPU driver version.
        """

    class TypeSize(BaseModel):
        """
        Describes the width and height dimensions of an entity.
        """

        width: Union[float, int]
        """
        Width in pixels.
        """
        height: Union[float, int]
        """
        Height in pixels.
        """

    class TypeVideoDecodeAcceleratorCapability(BaseModel):
        """
                Describes a supported video decoding profile with its associated minimum and
        maximum resolutions.
        """

        profile: str
        """
        Video codec profile that is supported, e.g. VP9 Profile 2.
        """
        maxResolution: "SystemInfo.TypeSize"
        """
        Maximum video dimensions in pixels supported for this |profile|.
        """
        minResolution: "SystemInfo.TypeSize"
        """
        Minimum video dimensions in pixels supported for this |profile|.
        """

    class TypeVideoEncodeAcceleratorCapability(BaseModel):
        """
                Describes a supported video encoding profile with its associated maximum
        resolution and maximum framerate.
        """

        profile: str
        """
        Video codec profile that is supported, e.g H264 Main.
        """
        maxResolution: "SystemInfo.TypeSize"
        """
        Maximum video dimensions in pixels supported for this |profile|.
        """
        maxFramerateNumerator: Union[float, int]
        """
        Maximum encoding framerate in frames per second supported for this
|profile|, as fraction's numerator and denominator, e.g. 24/1 fps,
24000/1001 fps, etc.
        """
        maxFramerateDenominator: Union[float, int]

    class TypeSubsamplingFormat(str, Enum):
        """
        YUV subsampling type of the pixels of a given image.
        """

        yuv420 = "yuv420"
        yuv422 = "yuv422"
        yuv444 = "yuv444"

    class TypeImageType(str, Enum):
        """
        Image format of a given image.
        """

        jpeg = "jpeg"
        webp = "webp"
        unknown = "unknown"

    class TypeImageDecodeAcceleratorCapability(BaseModel):
        """
                Describes a supported image decoding profile with its associated minimum and
        maximum resolutions and subsampling.
        """

        imageType: "SystemInfo.TypeImageType"
        """
        Image coded, e.g. Jpeg.
        """
        maxDimensions: "SystemInfo.TypeSize"
        """
        Maximum supported dimensions of the image in pixels.
        """
        minDimensions: "SystemInfo.TypeSize"
        """
        Minimum supported dimensions of the image in pixels.
        """
        subsamplings: list[Any]
        """
        Optional array of supported subsampling formats, e.g. 4:2:0, if known.
        """

    class TypeGPUInfo(BaseModel):
        """
        Provides information about the GPU(s) on the system.
        """

        devices: list[Any]
        """
        The graphics devices on the system. Element 0 is the primary GPU.
        """
        auxAttributes: Optional[dict[str, Any]] = None
        """
        An optional dictionary of additional GPU related attributes.
        """
        featureStatus: Optional[dict[str, Any]] = None
        """
        An optional dictionary of graphics features and their status.
        """
        driverBugWorkarounds: list[Any]
        """
        An optional array of GPU driver bug workarounds.
        """
        videoDecoding: list[Any]
        """
        Supported accelerated video decoding capabilities.
        """
        videoEncoding: list[Any]
        """
        Supported accelerated video encoding capabilities.
        """
        imageDecoding: list[Any]
        """
        Supported accelerated image decoding capabilities.
        """

    class TypeProcessInfo(BaseModel):
        """
        Represents process info.
        """

        type: str
        """
        Specifies process type.
        """
        id: Union[float, int]
        """
        Specifies process id.
        """
        cpuTime: Union[float, int]
        """
        Specifies cumulative CPU usage in seconds across all threads of the
process since the process start.
        """


class Target:
    """
    Supports additional targets discovery and allows to attach to them.
    """

    TypeTargetID = TypeVar("TypeTargetID", bound=str)

    TypeSessionID = TypeVar("TypeSessionID", bound=str)
    """
    Unique identifier of attached debugging session.
    """

    class TypeTargetInfo(BaseModel):
        targetId: "Target.TypeTargetID"
        type: str
        """
        List of types: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/devtools_agent_host_impl.cc?ss=chromium&q=f:devtools%20-f:out%20%22::kTypeTab%5B%5D%22
        """
        title: str
        url: str
        attached: bool
        """
        Whether the target has an attached client.
        """
        openerId: Optional["Target.TypeTargetID"] = None
        """
        Opener target Id
        """
        canAccessOpener: bool
        """
        Whether the target has access to the originating window.
        """
        openerFrameId: Optional["Page.TypeFrameId"] = None
        """
        Frame id of originating window (is only set if target has an opener).
        """
        browserContextId: Optional["Browser.TypeBrowserContextID"] = None
        subtype: Optional[str] = None
        """
        Provides additional details for specific target types. For example, for
the type of "page", this may be set to "portal" or "prerender".
        """

    class TypeFilterEntry(BaseModel):
        """
        A filter used by target query/discovery/auto-attach operations.
        """

        exclude: Optional[bool] = None
        """
        If set, causes exclusion of matching targets from the list.
        """
        type: Optional[str] = None
        """
        If not present, matches any type.
        """

    TypeTargetFilter = TypeVar("TypeTargetFilter", bound=list[Any])
    """
    The entries in TargetFilter are matched sequentially against targets and
the first entry that matches determines if the target is included or not,
depending on the value of `exclude` field in the entry.
If filter is not specified, the one assumed is
[{type: "browser", exclude: true}, {type: "tab", exclude: true}, {}]
(i.e. include everything but `browser` and `tab`).
    """

    class TypeRemoteLocation(BaseModel):
        host: str
        port: Union[float, int]


class Tracing:
    TypeMemoryDumpConfig = TypeVar("TypeMemoryDumpConfig", bound=dict[str, Any])
    """
    Configuration for memory dump. Used only when "memory-infra" category is enabled.
    """

    class TypeTraceConfig(BaseModel):
        recordMode: Optional[
            Literal[
                "recordUntilFull",
                "recordContinuously",
                "recordAsMuchAsPossible",
                "echoToConsole",
            ]
        ] = None
        """
        Controls how the trace buffer stores data.
        """
        traceBufferSizeInKb: Optional[Union[float, int]] = None
        """
        Size of the trace buffer in kilobytes. If not specified or zero is passed, a default value
of 200 MB would be used.
        """
        enableSampling: Optional[bool] = None
        """
        Turns on JavaScript stack sampling.
        """
        enableSystrace: Optional[bool] = None
        """
        Turns on system tracing.
        """
        enableArgumentFilter: Optional[bool] = None
        """
        Turns on argument filter.
        """
        includedCategories: Optional[list[Any]] = None
        """
        Included category filters.
        """
        excludedCategories: Optional[list[Any]] = None
        """
        Excluded category filters.
        """
        syntheticDelays: Optional[list[Any]] = None
        """
        Configuration to synthesize the delays in tracing.
        """
        memoryDumpConfig: Optional["Tracing.TypeMemoryDumpConfig"] = None
        """
        Configuration for memory dump triggers. Used only when "memory-infra" category is enabled.
        """

    class TypeStreamFormat(str, Enum):
        """
                Data format of a trace. Can be either the legacy JSON format or the
        protocol buffer format. Note that the JSON format will be deprecated soon.
        """

        json = "json"
        proto = "proto"

    class TypeStreamCompression(str, Enum):
        """
        Compression type to use for traces returned via streams.
        """

        none = "none"
        gzip = "gzip"

    class TypeMemoryDumpLevelOfDetail(str, Enum):
        """
                Details exposed when memory request explicitly declared.
        Keep consistent with memory_dump_request_args.h and
        memory_instrumentation.mojom
        """

        background = "background"
        light = "light"
        detailed = "detailed"

    class TypeTracingBackend(str, Enum):
        """
                Backend type to use for tracing. `chrome` uses the Chrome-integrated
        tracing service and is supported on all platforms. `system` is only
        supported on Chrome OS and uses the Perfetto system tracing service.
        `auto` chooses `system` when the perfettoConfig provided to Tracing.start
        specifies at least one non-Chrome data source; otherwise uses `chrome`.
        """

        auto = "auto"
        chrome = "chrome"
        system = "system"


class Fetch:
    """
    A domain for letting clients substitute browser's network layer with client code.
    """

    TypeRequestId = TypeVar("TypeRequestId", bound=str)
    """
    Unique request identifier.
    """

    class TypeRequestStage(str, Enum):
        """
                Stages of the request to handle. Request will intercept before the request is
        sent. Response will intercept after the response is received (but before response
        body is received).
        """

        Request = "Request"
        Response = "Response"

    class TypeRequestPattern(BaseModel):
        urlPattern: Optional[str] = None
        """
        Wildcards (`'*'` -> zero or more, `'?'` -> exactly one) are allowed. Escape character is
backslash. Omitting is equivalent to `"*"`.
        """
        resourceType: Optional["Network.TypeResourceType"] = None
        """
        If set, only requests for matching resource types will be intercepted.
        """
        requestStage: Optional["Fetch.TypeRequestStage"] = None
        """
        Stage at which to begin intercepting requests. Default is Request.
        """

    class TypeHeaderEntry(BaseModel):
        """
        Response HTTP header entry
        """

        name: str
        value: str

    class TypeAuthChallenge(BaseModel):
        """
        Authorization challenge for HTTP status code 401 or 407.
        """

        source: Optional[Literal["Server", "Proxy"]] = None
        """
        Source of the authentication challenge.
        """
        origin: str
        """
        Origin of the challenger.
        """
        scheme: str
        """
        The authentication scheme used, such as basic or digest
        """
        realm: str
        """
        The realm of the challenge. May be empty.
        """

    class TypeAuthChallengeResponse(BaseModel):
        """
        Response to an AuthChallenge.
        """

        response: Literal["Default", "CancelAuth", "ProvideCredentials"]
        """
        The decision on what to do in response to the authorization challenge.  Default means
deferring to the default behavior of the net stack, which will likely either the Cancel
authentication or display a popup dialog box.
        """
        username: Optional[str] = None
        """
        The username to provide, possibly empty. Should only be set if response is
ProvideCredentials.
        """
        password: Optional[str] = None
        """
        The password to provide, possibly empty. Should only be set if response is
ProvideCredentials.
        """


class WebAudio:
    """
        This domain allows inspection of Web Audio API.
    https://webaudio.github.io/web-audio-api/
    """

    TypeGraphObjectId = TypeVar("TypeGraphObjectId", bound=str)
    """
    An unique ID for a graph object (AudioContext, AudioNode, AudioParam) in Web Audio API
    """

    class TypeContextType(str, Enum):
        """
        Enum of BaseAudioContext types
        """

        realtime = "realtime"
        offline = "offline"

    class TypeContextState(str, Enum):
        """
        Enum of AudioContextState from the spec
        """

        suspended = "suspended"
        running = "running"
        closed = "closed"

    TypeNodeType = TypeVar("TypeNodeType", bound=str)
    """
    Enum of AudioNode types
    """

    class TypeChannelCountMode(str, Enum):
        """
        Enum of AudioNode::ChannelCountMode from the spec
        """

        clamped_max = "clamped-max"
        explicit = "explicit"
        max = "max"

    class TypeChannelInterpretation(str, Enum):
        """
        Enum of AudioNode::ChannelInterpretation from the spec
        """

        discrete = "discrete"
        speakers = "speakers"

    TypeParamType = TypeVar("TypeParamType", bound=str)
    """
    Enum of AudioParam types
    """

    class TypeAutomationRate(str, Enum):
        """
        Enum of AudioParam::AutomationRate from the spec
        """

        a_rate = "a-rate"
        k_rate = "k-rate"

    class TypeContextRealtimeData(BaseModel):
        """
        Fields in AudioContext that change in real-time.
        """

        currentTime: Union[float, int]
        """
        The current context time in second in BaseAudioContext.
        """
        renderCapacity: Union[float, int]
        """
        The time spent on rendering graph divided by render quantum duration,
and multiplied by 100. 100 means the audio renderer reached the full
capacity and glitch may occur.
        """
        callbackIntervalMean: Union[float, int]
        """
        A running mean of callback interval.
        """
        callbackIntervalVariance: Union[float, int]
        """
        A running variance of callback interval.
        """

    class TypeBaseAudioContext(BaseModel):
        """
        Protocol object for BaseAudioContext
        """

        contextId: "WebAudio.TypeGraphObjectId"
        contextType: "WebAudio.TypeContextType"
        contextState: "WebAudio.TypeContextState"
        realtimeData: Optional["WebAudio.TypeContextRealtimeData"] = None
        callbackBufferSize: Union[float, int]
        """
        Platform-dependent callback buffer size.
        """
        maxOutputChannelCount: Union[float, int]
        """
        Number of output channels supported by audio hardware in use.
        """
        sampleRate: Union[float, int]
        """
        Context sample rate.
        """

    class TypeAudioListener(BaseModel):
        """
        Protocol object for AudioListener
        """

        listenerId: "WebAudio.TypeGraphObjectId"
        contextId: "WebAudio.TypeGraphObjectId"

    class TypeAudioNode(BaseModel):
        """
        Protocol object for AudioNode
        """

        nodeId: "WebAudio.TypeGraphObjectId"
        contextId: "WebAudio.TypeGraphObjectId"
        nodeType: "WebAudio.TypeNodeType"
        numberOfInputs: Union[float, int]
        numberOfOutputs: Union[float, int]
        channelCount: Union[float, int]
        channelCountMode: "WebAudio.TypeChannelCountMode"
        channelInterpretation: "WebAudio.TypeChannelInterpretation"

    class TypeAudioParam(BaseModel):
        """
        Protocol object for AudioParam
        """

        paramId: "WebAudio.TypeGraphObjectId"
        nodeId: "WebAudio.TypeGraphObjectId"
        contextId: "WebAudio.TypeGraphObjectId"
        paramType: "WebAudio.TypeParamType"
        rate: "WebAudio.TypeAutomationRate"
        defaultValue: Union[float, int]
        minValue: Union[float, int]
        maxValue: Union[float, int]


class WebAuthn:
    """
        This domain allows configuring virtual authenticators to test the WebAuthn
    API.
    """

    TypeAuthenticatorId = TypeVar("TypeAuthenticatorId", bound=str)

    class TypeAuthenticatorProtocol(str, Enum):
        u2f = "u2f"
        ctap2 = "ctap2"

    class TypeCtap2Version(str, Enum):
        ctap2_0 = "ctap2_0"
        ctap2_1 = "ctap2_1"

    class TypeAuthenticatorTransport(str, Enum):
        usb = "usb"
        nfc = "nfc"
        ble = "ble"
        cable = "cable"
        internal = "internal"

    class TypeVirtualAuthenticatorOptions(BaseModel):
        protocol: "WebAuthn.TypeAuthenticatorProtocol"
        ctap2Version: Optional["WebAuthn.TypeCtap2Version"] = None
        """
        Defaults to ctap2_0. Ignored if |protocol| == u2f.
        """
        transport: "WebAuthn.TypeAuthenticatorTransport"
        hasResidentKey: Optional[bool] = None
        """
        Defaults to false.
        """
        hasUserVerification: Optional[bool] = None
        """
        Defaults to false.
        """
        hasLargeBlob: Optional[bool] = None
        """
        If set to true, the authenticator will support the largeBlob extension.
https://w3c.github.io/webauthn#largeBlob
Defaults to false.
        """
        hasCredBlob: Optional[bool] = None
        """
        If set to true, the authenticator will support the credBlob extension.
https://fidoalliance.org/specs/fido-v2.1-rd-20201208/fido-client-to-authenticator-protocol-v2.1-rd-20201208.html#sctn-credBlob-extension
Defaults to false.
        """
        hasMinPinLength: Optional[bool] = None
        """
        If set to true, the authenticator will support the minPinLength extension.
https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#sctn-minpinlength-extension
Defaults to false.
        """
        hasPrf: Optional[bool] = None
        """
        If set to true, the authenticator will support the prf extension.
https://w3c.github.io/webauthn/#prf-extension
Defaults to false.
        """
        automaticPresenceSimulation: Optional[bool] = None
        """
        If set to true, tests of user presence will succeed immediately.
Otherwise, they will not be resolved. Defaults to true.
        """
        isUserVerified: Optional[bool] = None
        """
        Sets whether User Verification succeeds or fails for an authenticator.
Defaults to false.
        """
        defaultBackupEligibility: Optional[bool] = None
        """
        Credentials created by this authenticator will have the backup
eligibility (BE) flag set to this value. Defaults to false.
https://w3c.github.io/webauthn/#sctn-credential-backup
        """
        defaultBackupState: Optional[bool] = None
        """
        Credentials created by this authenticator will have the backup state
(BS) flag set to this value. Defaults to false.
https://w3c.github.io/webauthn/#sctn-credential-backup
        """

    class TypeCredential(BaseModel):
        credentialId: str
        isResidentCredential: bool
        rpId: Optional[str] = None
        """
        Relying Party ID the credential is scoped to. Must be set when adding a
credential.
        """
        privateKey: str
        """
        The ECDSA P-256 private key in PKCS#8 format. (Encoded as a base64 string when passed over JSON)
        """
        userHandle: Optional[str] = None
        """
        An opaque byte sequence with a maximum size of 64 bytes mapping the
credential to a specific user. (Encoded as a base64 string when passed over JSON)
        """
        signCount: Union[float, int]
        """
        Signature counter. This is incremented by one for each successful
assertion.
See https://w3c.github.io/webauthn/#signature-counter
        """
        largeBlob: Optional[str] = None
        """
        The large blob associated with the credential.
See https://w3c.github.io/webauthn/#sctn-large-blob-extension (Encoded as a base64 string when passed over JSON)
        """
        backupEligibility: Optional[bool] = None
        """
        Assertions returned by this credential will have the backup eligibility
(BE) flag set to this value. Defaults to the authenticator's
defaultBackupEligibility value.
        """
        backupState: Optional[bool] = None
        """
        Assertions returned by this credential will have the backup state (BS)
flag set to this value. Defaults to the authenticator's
defaultBackupState value.
        """


class Media:
    """
    This domain allows detailed inspection of media elements
    """

    TypePlayerId = TypeVar("TypePlayerId", bound=str)
    """
    Players will get an ID that is unique within the agent context.
    """

    TypeTimestamp = TypeVar("TypeTimestamp", bound=Union[float, int])

    class TypePlayerMessage(BaseModel):
        """
                Have one type per entry in MediaLogRecord::Type
        Corresponds to kMessage
        """

        level: Literal["error", "warning", "info", "debug"]
        """
        Keep in sync with MediaLogMessageLevel
We are currently keeping the message level 'error' separate from the
PlayerError type because right now they represent different things,
this one being a DVLOG(ERROR) style log message that gets printed
based on what log level is selected in the UI, and the other is a
representation of a media::PipelineStatus object. Soon however we're
going to be moving away from using PipelineStatus for errors and
introducing a new error type which should hopefully let us integrate
the error log level into the PlayerError type.
        """
        message: str

    class TypePlayerProperty(BaseModel):
        """
        Corresponds to kMediaPropertyChange
        """

        name: str
        value: str

    class TypePlayerEvent(BaseModel):
        """
        Corresponds to kMediaEventTriggered
        """

        timestamp: "Media.TypeTimestamp"
        value: str

    class TypePlayerErrorSourceLocation(BaseModel):
        """
                Represents logged source line numbers reported in an error.
        NOTE: file and line are from chromium c++ implementation code, not js.
        """

        file: str
        line: Union[float, int]

    class TypePlayerError(BaseModel):
        """
        Corresponds to kMediaError
        """

        errorType: str
        code: Union[float, int]
        """
        Code is the numeric enum entry for a specific set of error codes, such
as PipelineStatusCodes in media/base/pipeline_status.h
        """
        stack: list[Any]
        """
        A trace of where this error was caused / where it passed through.
        """
        cause: list[Any]
        """
        Errors potentially have a root cause error, ie, a DecoderError might be
caused by an WindowsError
        """
        data: dict[str, Any]
        """
        Extra data attached to an error, such as an HRESULT, Video Codec, etc.
        """


class DeviceAccess:
    TypeRequestId = TypeVar("TypeRequestId", bound=str)
    """
    Device request id.
    """

    TypeDeviceId = TypeVar("TypeDeviceId", bound=str)
    """
    A device id.
    """

    class TypePromptDevice(BaseModel):
        """
        Device information displayed in a user prompt to select a device.
        """

        id: "DeviceAccess.TypeDeviceId"
        name: str
        """
        Display name as it appears in a device request user prompt.
        """


class Preload:
    TypeRuleSetId = TypeVar("TypeRuleSetId", bound=str)
    """
    Unique id
    """

    class TypeRuleSet(BaseModel):
        """
        Corresponds to SpeculationRuleSet
        """

        id: "Preload.TypeRuleSetId"
        loaderId: "Network.TypeLoaderId"
        """
        Identifies a document which the rule set is associated with.
        """
        sourceText: str
        """
        Source text of JSON representing the rule set. If it comes from
`<script>` tag, it is the textContent of the node. Note that it is
a JSON for valid case.

See also:
- https://wicg.github.io/nav-speculation/speculation-rules.html
- https://github.com/WICG/nav-speculation/blob/main/triggers.md
        """
        backendNodeId: Optional["DOM.TypeBackendNodeId"] = None
        """
        A speculation rule set is either added through an inline
`<script>` tag or through an external resource via the
'Speculation-Rules' HTTP header. For the first case, we include
the BackendNodeId of the relevant `<script>` tag. For the second
case, we include the external URL where the rule set was loaded
from, and also RequestId if Network domain is enabled.

See also:
- https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-script
- https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-header
        """
        url: Optional[str] = None
        requestId: Optional["Network.TypeRequestId"] = None
        errorType: Optional["Preload.TypeRuleSetErrorType"] = None
        """
        Error information
`errorMessage` is null iff `errorType` is null.
        """
        errorMessage: Optional[str] = None
        """
        TODO(https://crbug.com/1425354): Replace this property with structured error.
        """

    class TypeRuleSetErrorType(str, Enum):
        SourceIsNotJsonObject = "SourceIsNotJsonObject"
        InvalidRulesSkipped = "InvalidRulesSkipped"

    class TypeSpeculationAction(str, Enum):
        """
                The type of preloading attempted. It corresponds to
        mojom::SpeculationAction (although PrefetchWithSubresources is omitted as it
        isn't being used by clients).
        """

        Prefetch = "Prefetch"
        Prerender = "Prerender"

    class TypeSpeculationTargetHint(str, Enum):
        """
                Corresponds to mojom::SpeculationTargetHint.
        See https://github.com/WICG/nav-speculation/blob/main/triggers.md#window-name-targeting-hints
        """

        Blank = "Blank"
        Self = "Self"

    class TypePreloadingAttemptKey(BaseModel):
        """
                A key that identifies a preloading attempt.

        The url used is the url specified by the trigger (i.e. the initial URL), and
        not the final url that is navigated to. For example, prerendering allows
        same-origin main frame navigations during the attempt, but the attempt is
        still keyed with the initial URL.
        """

        loaderId: "Network.TypeLoaderId"
        action: "Preload.TypeSpeculationAction"
        url: str
        targetHint: Optional["Preload.TypeSpeculationTargetHint"] = None

    class TypePreloadingAttemptSource(BaseModel):
        """
                Lists sources for a preloading attempt, specifically the ids of rule sets
        that had a speculation rule that triggered the attempt, and the
        BackendNodeIds of <a href> or <area href> elements that triggered the
        attempt (in the case of attempts triggered by a document rule). It is
        possible for multiple rule sets and links to trigger a single attempt.
        """

        key: "Preload.TypePreloadingAttemptKey"
        ruleSetIds: list[Any]
        nodeIds: list[Any]

    class TypePrerenderFinalStatus(str, Enum):
        """
        List of FinalStatus reasons for Prerender2.
        """

        Activated = "Activated"
        Destroyed = "Destroyed"
        LowEndDevice = "LowEndDevice"
        InvalidSchemeRedirect = "InvalidSchemeRedirect"
        InvalidSchemeNavigation = "InvalidSchemeNavigation"
        NavigationRequestBlockedByCsp = "NavigationRequestBlockedByCsp"
        MainFrameNavigation = "MainFrameNavigation"
        MojoBinderPolicy = "MojoBinderPolicy"
        RendererProcessCrashed = "RendererProcessCrashed"
        RendererProcessKilled = "RendererProcessKilled"
        Download = "Download"
        TriggerDestroyed = "TriggerDestroyed"
        NavigationNotCommitted = "NavigationNotCommitted"
        NavigationBadHttpStatus = "NavigationBadHttpStatus"
        ClientCertRequested = "ClientCertRequested"
        NavigationRequestNetworkError = "NavigationRequestNetworkError"
        CancelAllHostsForTesting = "CancelAllHostsForTesting"
        DidFailLoad = "DidFailLoad"
        Stop = "Stop"
        SslCertificateError = "SslCertificateError"
        LoginAuthRequested = "LoginAuthRequested"
        UaChangeRequiresReload = "UaChangeRequiresReload"
        BlockedByClient = "BlockedByClient"
        AudioOutputDeviceRequested = "AudioOutputDeviceRequested"
        MixedContent = "MixedContent"
        TriggerBackgrounded = "TriggerBackgrounded"
        MemoryLimitExceeded = "MemoryLimitExceeded"
        DataSaverEnabled = "DataSaverEnabled"
        TriggerUrlHasEffectiveUrl = "TriggerUrlHasEffectiveUrl"
        ActivatedBeforeStarted = "ActivatedBeforeStarted"
        InactivePageRestriction = "InactivePageRestriction"
        StartFailed = "StartFailed"
        TimeoutBackgrounded = "TimeoutBackgrounded"
        CrossSiteRedirectInInitialNavigation = "CrossSiteRedirectInInitialNavigation"
        CrossSiteNavigationInInitialNavigation = (
            "CrossSiteNavigationInInitialNavigation"
        )
        SameSiteCrossOriginRedirectNotOptInInInitialNavigation = (
            "SameSiteCrossOriginRedirectNotOptInInInitialNavigation"
        )
        SameSiteCrossOriginNavigationNotOptInInInitialNavigation = (
            "SameSiteCrossOriginNavigationNotOptInInInitialNavigation"
        )
        ActivationNavigationParameterMismatch = "ActivationNavigationParameterMismatch"
        ActivatedInBackground = "ActivatedInBackground"
        EmbedderHostDisallowed = "EmbedderHostDisallowed"
        ActivationNavigationDestroyedBeforeSuccess = (
            "ActivationNavigationDestroyedBeforeSuccess"
        )
        TabClosedByUserGesture = "TabClosedByUserGesture"
        TabClosedWithoutUserGesture = "TabClosedWithoutUserGesture"
        PrimaryMainFrameRendererProcessCrashed = (
            "PrimaryMainFrameRendererProcessCrashed"
        )
        PrimaryMainFrameRendererProcessKilled = "PrimaryMainFrameRendererProcessKilled"
        ActivationFramePolicyNotCompatible = "ActivationFramePolicyNotCompatible"
        PreloadingDisabled = "PreloadingDisabled"
        BatterySaverEnabled = "BatterySaverEnabled"
        ActivatedDuringMainFrameNavigation = "ActivatedDuringMainFrameNavigation"
        PreloadingUnsupportedByWebContents = "PreloadingUnsupportedByWebContents"
        CrossSiteRedirectInMainFrameNavigation = (
            "CrossSiteRedirectInMainFrameNavigation"
        )
        CrossSiteNavigationInMainFrameNavigation = (
            "CrossSiteNavigationInMainFrameNavigation"
        )
        SameSiteCrossOriginRedirectNotOptInInMainFrameNavigation = (
            "SameSiteCrossOriginRedirectNotOptInInMainFrameNavigation"
        )
        SameSiteCrossOriginNavigationNotOptInInMainFrameNavigation = (
            "SameSiteCrossOriginNavigationNotOptInInMainFrameNavigation"
        )
        MemoryPressureOnTrigger = "MemoryPressureOnTrigger"
        MemoryPressureAfterTriggered = "MemoryPressureAfterTriggered"
        PrerenderingDisabledByDevTools = "PrerenderingDisabledByDevTools"
        SpeculationRuleRemoved = "SpeculationRuleRemoved"
        ActivatedWithAuxiliaryBrowsingContexts = (
            "ActivatedWithAuxiliaryBrowsingContexts"
        )
        MaxNumOfRunningEagerPrerendersExceeded = (
            "MaxNumOfRunningEagerPrerendersExceeded"
        )
        MaxNumOfRunningNonEagerPrerendersExceeded = (
            "MaxNumOfRunningNonEagerPrerendersExceeded"
        )
        MaxNumOfRunningEmbedderPrerendersExceeded = (
            "MaxNumOfRunningEmbedderPrerendersExceeded"
        )
        PrerenderingUrlHasEffectiveUrl = "PrerenderingUrlHasEffectiveUrl"
        RedirectedPrerenderingUrlHasEffectiveUrl = (
            "RedirectedPrerenderingUrlHasEffectiveUrl"
        )
        ActivationUrlHasEffectiveUrl = "ActivationUrlHasEffectiveUrl"
        JavaScriptInterfaceAdded = "JavaScriptInterfaceAdded"
        JavaScriptInterfaceRemoved = "JavaScriptInterfaceRemoved"
        AllPrerenderingCanceled = "AllPrerenderingCanceled"

    class TypePreloadingStatus(str, Enum):
        """
                Preloading status values, see also PreloadingTriggeringOutcome. This
        status is shared by prefetchStatusUpdated and prerenderStatusUpdated.
        """

        Pending = "Pending"
        Running = "Running"
        Ready = "Ready"
        Success = "Success"
        Failure = "Failure"
        NotSupported = "NotSupported"

    class TypePrefetchStatus(str, Enum):
        """
                TODO(https://crbug.com/1384419): revisit the list of PrefetchStatus and
        filter out the ones that aren't necessary to the developers.
        """

        PrefetchAllowed = "PrefetchAllowed"
        PrefetchFailedIneligibleRedirect = "PrefetchFailedIneligibleRedirect"
        PrefetchFailedInvalidRedirect = "PrefetchFailedInvalidRedirect"
        PrefetchFailedMIMENotSupported = "PrefetchFailedMIMENotSupported"
        PrefetchFailedNetError = "PrefetchFailedNetError"
        PrefetchFailedNon2XX = "PrefetchFailedNon2XX"
        PrefetchFailedPerPageLimitExceeded = "PrefetchFailedPerPageLimitExceeded"
        PrefetchEvictedAfterCandidateRemoved = "PrefetchEvictedAfterCandidateRemoved"
        PrefetchEvictedForNewerPrefetch = "PrefetchEvictedForNewerPrefetch"
        PrefetchHeldback = "PrefetchHeldback"
        PrefetchIneligibleRetryAfter = "PrefetchIneligibleRetryAfter"
        PrefetchIsPrivacyDecoy = "PrefetchIsPrivacyDecoy"
        PrefetchIsStale = "PrefetchIsStale"
        PrefetchNotEligibleBrowserContextOffTheRecord = (
            "PrefetchNotEligibleBrowserContextOffTheRecord"
        )
        PrefetchNotEligibleDataSaverEnabled = "PrefetchNotEligibleDataSaverEnabled"
        PrefetchNotEligibleExistingProxy = "PrefetchNotEligibleExistingProxy"
        PrefetchNotEligibleHostIsNonUnique = "PrefetchNotEligibleHostIsNonUnique"
        PrefetchNotEligibleNonDefaultStoragePartition = (
            "PrefetchNotEligibleNonDefaultStoragePartition"
        )
        PrefetchNotEligibleSameSiteCrossOriginPrefetchRequiredProxy = (
            "PrefetchNotEligibleSameSiteCrossOriginPrefetchRequiredProxy"
        )
        PrefetchNotEligibleSchemeIsNotHttps = "PrefetchNotEligibleSchemeIsNotHttps"
        PrefetchNotEligibleUserHasCookies = "PrefetchNotEligibleUserHasCookies"
        PrefetchNotEligibleUserHasServiceWorker = (
            "PrefetchNotEligibleUserHasServiceWorker"
        )
        PrefetchNotEligibleBatterySaverEnabled = (
            "PrefetchNotEligibleBatterySaverEnabled"
        )
        PrefetchNotEligiblePreloadingDisabled = "PrefetchNotEligiblePreloadingDisabled"
        PrefetchNotFinishedInTime = "PrefetchNotFinishedInTime"
        PrefetchNotStarted = "PrefetchNotStarted"
        PrefetchNotUsedCookiesChanged = "PrefetchNotUsedCookiesChanged"
        PrefetchProxyNotAvailable = "PrefetchProxyNotAvailable"
        PrefetchResponseUsed = "PrefetchResponseUsed"
        PrefetchSuccessfulButNotUsed = "PrefetchSuccessfulButNotUsed"
        PrefetchNotUsedProbeFailed = "PrefetchNotUsedProbeFailed"

    class TypePrerenderMismatchedHeaders(BaseModel):
        """
        Information of headers to be displayed when the header mismatch occurred.
        """

        headerName: str
        initialValue: Optional[str] = None
        activationValue: Optional[str] = None


class FedCm:
    """
    This domain allows interacting with the FedCM dialog.
    """

    class TypeLoginState(str, Enum):
        """
                Whether this is a sign-up or sign-in action for this account, i.e.
        whether this account has ever been used to sign in to this RP before.
        """

        SignIn = "SignIn"
        SignUp = "SignUp"

    class TypeDialogType(str, Enum):
        """
        The types of FedCM dialogs.
        """

        AccountChooser = "AccountChooser"
        AutoReauthn = "AutoReauthn"
        ConfirmIdpLogin = "ConfirmIdpLogin"
        Error = "Error"

    class TypeDialogButton(str, Enum):
        """
        The buttons on the FedCM dialog.
        """

        ConfirmIdpLoginContinue = "ConfirmIdpLoginContinue"
        ErrorGotIt = "ErrorGotIt"
        ErrorMoreDetails = "ErrorMoreDetails"

    class TypeAccountUrlType(str, Enum):
        """
        The URLs that each account has
        """

        TermsOfService = "TermsOfService"
        PrivacyPolicy = "PrivacyPolicy"

    class TypeAccount(BaseModel):
        """
        Corresponds to IdentityRequestAccount
        """

        accountId: str
        email: str
        name: str
        givenName: str
        pictureUrl: str
        idpConfigUrl: str
        idpLoginUrl: str
        loginState: "FedCm.TypeLoginState"
        termsOfServiceUrl: Optional[str] = None
        """
        These two are only set if the loginState is signUp
        """
        privacyPolicyUrl: Optional[str] = None


class PWA:
    """
    This domain allows interacting with the browser to control PWAs.
    """

    class TypeFileHandlerAccept(BaseModel):
        """
                The following types are the replica of
        https://crsrc.org/c/chrome/browser/web_applications/proto/web_app_os_integration_state.proto;drc=9910d3be894c8f142c977ba1023f30a656bc13fc;l=67
        """

        mediaType: str
        """
        New name of the mimetype according to
https://www.iana.org/assignments/media-types/media-types.xhtml
        """
        fileExtensions: list[Any]

    class TypeFileHandler(BaseModel):
        action: str
        accepts: list[Any]
        displayName: str
