import { ListenerBindingOptions, ListenerBinding } from "./bindings"; export declare type ListenerFunction = (id: string[], ...arg: any[]) => any; export interface ListenerEmitFunction { promise: Promise; out: any; } export interface ListenerEmitItem { args: any[]; id: string[]; fn: ListenerFunction; opts: ListenerEmitOptions; } export interface ListenerEmitSetter { out: (o?: any) => any; promise: (p?: Promise) => any; } export interface ListenerEmitOptions { addListener: boolean; isBefore: boolean; isIntercept: boolean; isMain: boolean; isPeek: boolean; isReturn: boolean; once: boolean; } export declare class Emit { static customizeArgs(args: any[], { addListener }: ListenerEmitOptions): any[]; static customizeIds(id: string[], { customIds }: ListenerBinding): any[]; static callFunction({ args, fn, id, opts }: ListenerEmitItem, setter: ListenerEmitSetter): ListenerEmitFunction; static callItem(item: ListenerEmitItem, setter: ListenerEmitSetter): any; static callPromises(promises: ListenerEmitItem[], setter: ListenerEmitSetter): void; static itemOutput(promise: Promise, opts: ListenerEmitOptions, setter: ListenerEmitSetter): any; static options(options: ListenerBindingOptions): ListenerEmitOptions; }