import { Constructor } from 'type-fest'; import { z } from 'zod'; import { Entry, EventSchema, Registry } from './types'; export declare const EVENT_LISTENER = "TypedEventEmitter_listener"; export type Watcher = { handle(event: z.output): Promise; }; export type WatcherMeta = { event: string; options: Entry; }; export declare function EventListener, ResourceKey extends keyof R & string>(contract: R, resource: ResourceKey): (target: Constructor>) => void; export declare const EventListenerDecoratorFactory: >(contract: R) => (key: ResourceKey) => (target: Constructor, any[]>) => void;