import { bool, Dic, float, str } from "./util.js"; /**event arg */ export interface Arg { v: T; /**prevented */ p?: bool; } export interface Options { delay?: float; once?: bool; passive?: bool; check?: (...args: A) => bool; } export type EventTargetCallback = ((this: T, ...args: A) => any) & Options; export interface EventObject = any> { /**events handlers*/ eh: { [K in keyof T]?: EventTargetCallback[]; }; /**when true this object do not raise events */ slip?: bool; } export declare function on(e: E, event: str, callback: EventTargetCallback, options?: Options): E; export declare function off(e: E, event: PropertyKey, callback?: EventTargetCallback): E; export declare function emit(e: T, event: K, ...args: any[]): T; export declare function emitAsync(stack: EventTargetCallback[], args: any[], me?: any): Promise;