UNPKG

@kontent-ai/smart-link

Version:

Kontent.ai Smart Link SDK allowing to automatically inject [smart links](https://docs.kontent.ai/tutorials/develop-apps/build-strong-foundation/set-up-editing-from-preview#a-using-smart-links) to Kontent.ai according to manually specified [HTML data attri

25 lines (24 loc) 1.85 kB
export type AsyncCustomEventDetail<TEventData, TResolveData, TRejectReason> = { readonly eventData: TEventData; readonly onResolve: (data: TResolveData) => void; readonly onReject: (reason: TRejectReason) => void; }; export type AsyncCustomEvent<TEventData, TResolveData, TRejectReason> = CustomEvent<AsyncCustomEventDetail<TEventData, TResolveData, TRejectReason>>; export type Callback<TData = undefined, TMetadata = undefined> = (data?: TData, metadata?: TMetadata) => void; export type EventHandler<TEventData = undefined, TEventMetadata = undefined, TEventCallback = undefined> = (data: TEventData, metadata: TEventMetadata, callback: TEventCallback) => void; type EventMap = Record<string, (...args: any[]) => void>; export type EventListeners<Events extends EventMap> = Map<keyof Events, Set<Events[keyof Events]>>; /** * Adds an event listener for a given event. This function is not pure as it modifies the provided eventListeners map. */ export declare const addListener: <Events extends EventMap, E extends keyof Events>(eventListeners: EventListeners<Events>, event: E, listener: Events[E]) => void; /** * Removes an event listener for a given event. This function is not pure as it modifies the provided eventListeners map. */ export declare const removeListener: <Events extends EventMap, E extends keyof Events>(eventListeners: EventListeners<Events>, event: E, listener: Events[E]) => void; /** * Emits an event, calling all registered listeners for that event with the provided arguments. * This function is not pure, though it only reads from the eventListeners map, its core purpose is to trigger side effects (the listeners). */ export declare const emitEvents: <Events extends EventMap, E extends keyof Events>(eventListeners: EventListeners<Events>, event: E, ...args: Parameters<Events[E]>) => void; export {};