/** based on emittery npm package, which is MIT */
export type EmitterCallback = (data?: any) => any;
export type EmitterAnyCallback = (eventName: string, data?: any) => any;
declare class Emittery {
    static mixin(emitteryPropertyName: string, methodNames: string[]): (target: any) => any;
    constructor();
    destroy(): void;
    on(eventName: string, listener: EmitterCallback): any;
    off(eventName: string, listener: EmitterCallback): void;
    once(eventName: string): Promise<unknown>;
    onIncludeFiredOnce(eventName: string): Promise<any>;
    onIncludeFired(eventName: string, listener: EmitterCallback): any;
    emit(eventName: string, eventData?: any): Promise<any[]>;
    emitSync(eventName: string, eventData?: any): any[];
    emitSerial(eventName: string, eventData: any): Promise<void>;
    onAny(listener: EmitterAnyCallback): any;
    offAny(listener: EmitterCallback): void;
    clearListeners(eventName?: string): void;
    listenerCount(eventName: string): any;
    bindMethods(target: any, methodNames: string[]): void;
}
export default Emittery;
