import { StandardInvokeHookOptions } from "./awaiatableEventEmitter.js"; import { HookedEventEmitter, ChainedCallbackEventMapWithCaller } from "./events/index.js"; export type ExtraBeforeAfterEvent = K | { event: K; emitArgs?: Partial; }; export declare function getTryCatch(): Promise, IE extends string & keyof BEAAD, BEA extends HEM[BE]["emitArgs"], AEA extends HEM[AE]["emitArgs"], AIE extends string & keyof BEAAD, BEAO extends Omit, AEAO extends BEA extends { argsOrig: any[]; } ? Omit : Omit, CT extends BEAAD[IE]["caller"] | undefined>(ee: HookedEventEmitter, fn: T, caller: CT, args: HEM[BE]["emitArgs"]["args"] extends never ? undefined : HEM[BE]["emitArgs"]["args"], beforeAfterEmitArgs: (BEAO | AEAO) & (BEAO & AEAO), chainArgs: HEM[BE]["returnEmitName"] extends never ? false : true, chainResult: HEM[AE]["returnEmitName"] extends never ? false : true, chainArgsKey: ("args" | (keyof ((BEAO | AEAO) & (BEAO & AEAO)) & string)) | undefined, invocationOptions: StandardInvokeHookOptions | undefined, internalEvent: IE, ...additionalInternalEvents: ExtraBeforeAfterEvent[]) => Promise>>;