type Fn = (obj: Obj, ...args: Args) => Ret; type AsyncFn = (obj: Obj, ...args: Args) => Promise; export type Callable = Fn | AsyncFn; export type Executable = { execute: Callable; }; export type CallbackLike = Executable | Callable; export type ExecutableOf> = T extends Function ? never : T; export type CallbackLike0 = CallbackLike; export type CallbackLike1 = CallbackLike; export declare function execute(cb: CallbackLike, obj: Obj, ...args: Args): Ret | Promise; export type SyncExecutable = { execute_sync: Fn; }; export type SyncExecutableLike = SyncExecutable | Fn; export declare function execute_sync(cb: SyncExecutableLike, obj: Obj, ...args: Args): Ret; export {}; //# sourceMappingURL=callbacks.d.ts.map