import { Type } from "@angular/core";
import { EventMetadata, EventType } from "./metadata";
export declare function EventSource(): PropertyDecorator;
export declare function EventSource(...methodDecorators: MethodDecorator[]): PropertyDecorator;
export declare function EventSource(options: EventSource.DecoratorOptions, ...methodDecorators: MethodDecorator[]): PropertyDecorator;
export declare namespace EventSource {
    type DecoratorOptions = Partial<EventMetadata.ConfigOptions>;
    /** @PropertyDecoratorFactory */
    function WithParams(options?: DecoratorOptions, ...methodDecorators: MethodDecorator[]): PropertyDecorator;
    /**
     * @description Registers a lifecycle event handler for use with `registerPreOrderHooks`/`registerPostOrderHooks`
     */
    function registerLifecycleEvent(targetClass: Type<any>, eventType: EventType, hookFn: (...args: any[]) => void): void;
    function unregisterLifecycleEvent(targetClass: Type<any>, eventType: EventType, hookFn: (...args: any[]) => void): void;
}
