import { NoopFunction } from "../helpers/intefaces";
/**
* Event emitter
* https://github.com/peterkejun/Animated-Canvas/blob/05bf961da7cba31aa901054948293180a6131704/src/Helpers/EventEmitter.ts
**/
export declare class EventEmitter {
    /**
     * A map of event to a list of callbacks
     */
    private observers;
    /**
     * A new EventEmitter with no observers
     * @constructor
     */
    constructor();
    /**
     * Subcribe to an event by providing a callback
     * @param event the event to subscribe to
     * @param cb the callback to run when the event is emitted
     */
    on: (event: string, cb: NoopFunction) => void;
    /**
     * Unsubscribe to an event by removing a specific callback function
     * @param event the event to unsubscribe to
     * @param cb the callback to remove
     */
    remove: (event: string, cb: NoopFunction) => void;
    /**
     * Emit an event with arguments for callbacks
     * @param event the event to emit
     * @param args extra arguments for the callbacks of this event
     */
    emit: (event: string, ...args: any[]) => void;
}
