import numpy as np
from vispy.util.event import Event
from vispy.util.svg.shapes import Rect

from ...geometry import Rect
from ...visuals.transforms import MatrixTransform, STTransform
from .base_camera import BaseCamera

# -*- coding: utf-8 -*-
# Copyright (c) Vispy Development Team. All Rights Reserved.
# Distributed under the (new) BSD License. See LICENSE.txt for more info.

DEFAULT_RECT_TUPLE = ...

class PanZoomCamera(BaseCamera):
    _state_props = ...

    def __init__(self, rect: Rect = ..., aspect: None | float = None, **kwargs): ...
    @property
    def aspect(self): ...
    @aspect.setter
    def aspect(self, value): ...
    def zoom(self, factor: float | tuple, center: tuple | None = None): ...
    def pan(self, *pan): ...
    @property
    def rect(self): ...
    @rect.setter
    def rect(self, args): ...
    @property
    def center(self): ...
    @center.setter
    def center(self, center): ...
    def _set_range(self, init): ...
    def viewbox_resize_event(self, event: Event): ...
    def viewbox_mouse_event(self, event: Event): ...
    def _update_transform(self): ...
