export declare abstract class EventManager<EventListener extends Function> {
    protected abstract listeners: EventListener[];
    on(listener: EventListener): () => void;
    off(listener: EventListener): void;
    protected abstract bind(): void;
    protected abstract unbind(): void;
}
export declare abstract class EventsManager<EventKey extends string, EventListener extends Function> {
    protected abstract listeners: Record<EventKey, EventListener[]>;
    on(eventKey: EventKey, listener: EventListener): () => void;
    off(eventKey: EventKey, listener: EventListener): void;
    protected abstract bind(eventKey: EventKey): void;
    protected abstract unbind(eventKey: EventKey): void;
}
