import { AuthenticationStrategy, EventDefinition, EventHandler, EventIdentity } from '@wix/sdk-types'; import { Emitter } from './nanoevents.js'; export declare const isEventHandlerModule: (val: any) => val is EventDefinition; export declare function buildEventDefinition>(eventDefinition: T, registerHandler: (eventDefinition: T, handler: EventHandler) => void): (handler: EventHandler) => void; type ResolvePossibleEvents[]> = { [K in keyof T]: T[K] extends EventDefinition ? { eventType: T[K]['type']; payload: T[K]['__payload']; } : never; } extends (infer U)[] ? U : never; export type ProcessedEvent[] = []> = { instanceId: string; identity?: EventIdentity; } & (T['length'] extends 0 ? { eventType: string; payload: unknown; } : ResolvePossibleEvents); export type EventHandlersClient = Emitter<{ registered: (event: EventDefinition) => void; }> & { getRegisteredEvents(): Map; }[]>; process[] = []>(jwt: string, opts?: { expectedEvents: ExpectedEvents; }): Promise>; processRequest[] = []>(request: Request, opts?: { expectedEvents: ExpectedEvents; }): Promise>; parseJWT(jwt: string): Promise; parseRequest(request: Request): Promise; executeHandlers(event: ProcessedEvent): Promise; apps: { AppInstalled: EventDefinition<{ appId: string; originInstanceId: string; }, 'AppInstalled'>; AppRemoved: EventDefinition<{ appId: string; }, 'AppRemoved'>; }; }; export declare function eventHandlersModules(authStrategy: AuthenticationStrategy): { initModule(eventDefinition: EventDefinition): (handler: EventHandler>) => void; client: EventHandlersClient; }; export {};