import numpy as np
from numpy.typing import ArrayLike

from .. import gloo
from .visual import Visual

_VERTEX_SHADER: str = ...

_FRAGMENT_SHADER: str = ...

class InfiniteLineVisual(Visual):
    _shaders: dict = ...

    def __init__(
        self,
        pos: float | None = None,
        color: ArrayLike | tuple = ...,
        line_width: float = 1.0,
        antialias: bool = False,
        vertical=True,
        **kwargs,
    ): ...
    def set_data(self, pos: float | None = None, color: ArrayLike | tuple | None = None): ...
    @property
    def color(self): ...
    @property
    def pos(self): ...
    @property
    def line_width(self): ...
    @line_width.setter
    def line_width(self, val: float): ...
    @property
    def antialias(self): ...
    @antialias.setter
    def antialias(self, val: float): ...
    def _compute_bounds(self, axis, view): ...
    @property
    def is_vertical(self): ...
    def _prepare_transforms(self, view=None): ...
    def _prepare_draw(self, view=None): ...
