import { type Constructable, type IContainer, type AnyFunction, type FunctionPropNames, IRegistry } from '@aurelia/kernel'; export type LifecycleHook = TViewModel[TKey] extends (AnyFunction | undefined) ? (vm: TViewModel, ...args: Parameters>) => ReturnType> : never; export type ILifecycleHooks = { [K in TKey]-?: LifecycleHook; }; export declare const ILifecycleHooks: import("@aurelia/kernel").InterfaceSymbol>; export type LifecycleHooksLookup = { [K in FunctionPropNames]?: readonly LifecycleHooksEntry[]; }; export declare class LifecycleHooksEntry { readonly definition: LifecycleHooksDefinition; readonly instance: ILifecycleHooks; constructor(definition: LifecycleHooksDefinition, instance: ILifecycleHooks); } /** * This definition has no specific properties yet other than the type, but is in place for future extensions. * * See: https://github.com/aurelia/aurelia/issues/1044 */ export declare class LifecycleHooksDefinition { readonly Type: T; readonly propertyNames: ReadonlySet; private constructor(); /** * @param def - Placeholder for future extensions. Currently always an empty object. */ static create(def: {}, Type: T): LifecycleHooksDefinition; } export declare const LifecycleHooks: Readonly<{ /** * @param def - Placeholder for future extensions. Currently always an empty object. */ define(def: {}, Type: T): IRegistry; /** * @param ctx - The container where the resolution starts * @param Type - The constructor of the Custom element/ Custom attribute with lifecycle metadata */ resolve(ctx: IContainer): LifecycleHooksLookup; }>; /** * Decorator: Indicates that the decorated class is a custom element. */ export declare function lifecycleHooks(): (target: T, context: ClassDecoratorContext) => T; export declare function lifecycleHooks(target: T, context: ClassDecoratorContext): T; //# sourceMappingURL=lifecycle-hooks.d.ts.map