"""
MyUI plugin base. Easy way to structure a new plugin.
Remember to inherit and use all functions upon needs.
"""
import pygame
from typing import Optional, Protocol

class Plugin(Protocol):
    def on_load(self, app) -> None: ...
    def on_unload(self) -> None: ...
    def on_update(self) -> None: ...
    def on_render(self, surface: pygame.Surface) -> None: ...
    def on_event(self, event: pygame.event.Event, offset: pygame.math.Vector2) -> Optional[bool]: ...

del Optional