export declare const enum HookNames { Assemble = 0, AssembleTelemetry = 1 } export declare const HookNamesAsConst: { ASSEMBLE: HookNames.Assemble; ASSEMBLE_TELEMETRY: HookNames.AssembleTelemetry; }; export type RecursivePartial = { [P in keyof T]?: T[P] extends Array ? Array> : T[P] extends object | undefined ? RecursivePartial : T[P]; }; export declare const DISCARDED = "DISCARDED"; export declare const SKIPPED = "SKIPPED"; export type DISCARDED = typeof DISCARDED; export type SKIPPED = typeof SKIPPED; export type AbstractHooks = ReturnType; export declare function abstractHooks unknown; }>(): { register(hookName: K, callback: T[K]): { unregister: () => void; }; triggerHook(hookName: K, param: Parameters[0]): Exclude, SKIPPED> | DISCARDED | undefined; };