import { InputManager, KeyEventSubscriber, MouseDragEventSubscriber, MouseEventSubscriber, ScrollEventSubscriber } from './InputManager'; import { Sketch } from './Sketch'; import { ExtendedP5 } from './ExtendedP5'; import { PixelPosition, Position } from '../types/position'; export interface ComponentClass { position: Position; pixelPosition: PixelPosition; onLoad: () => void; draw: () => void; onDestroy: () => void; } export declare abstract class Component implements ComponentClass { position: Position; get pixelPosition(): PixelPosition; protected zIndex: number; protected eventUnSubscriptions: { [key: string]: (() => void)[]; }; protected sketchInstance: T; get sketch(): ExtendedP5; get input(): InputManager; constructor(sketchInstance: T, zIndex?: number); protected subscribeToMousePressed(sub: MouseEventSubscriber): void; protected subscribeToMouseReleased(sub: MouseEventSubscriber): void; protected subscribeToMouseDragged(sub: MouseDragEventSubscriber): void; protected subscribeToKeyPressed(sub: KeyEventSubscriber): void; protected subscribeToKeyReleased(sub: KeyEventSubscriber): void; protected subscribeToScroll(sub: ScrollEventSubscriber): void; protected addUnSubscription(key: string, unSubscriptionFn: () => void): void; onLoad(): void; draw(): void; onDestroy(): void; }