import { HookClass, HookFn } from './hook';
import type { IContainer, IContainerModule } from '../container/IContainer';
import { constructor, Instance } from '../utils/basic';
import { HooksRunner } from './HooksRunner';
import type { ExecutionContext } from '../ExecutionContext';
export declare const onConstructHooksRunner: HooksRunner;
export declare const onConstruct: (...fns: (HookFn | constructor<HookClass>)[]) => (target: object, propertyKey: string | symbol) => void;
export type OnConstructHook = (instance: Instance, scope: IContainer) => void;
export type OnExceptionHandler = (ex: unknown, context: ExecutionContext) => void;
export declare class AddOnConstructHookModule implements IContainerModule {
    private readonly onException?;
    constructor(onException?: OnExceptionHandler | undefined);
    applyTo(container: IContainer): void;
}
