@cossistant/next
Version:
Next.js-ready SDK for building AI-powered support/chat widgets. Hooks + primitives, WS-driven, TypeScript-first. Next.js-ready, Tailwind optional.
28 lines (27 loc) • 1.48 kB
TypeScript
import { RealtimeContextValue } from "./provider3.js";
//#region ../react/src/realtime/use-realtime.d.ts
type RealtimeHandlerContext<TContext> = TContext;
type RealtimeEventMeta<TType extends RealtimeEventType, TContext> = {
event: RealtimeEvent<TType>;
context: RealtimeHandlerContext<TContext>;
};
type RealtimeEventHandler<TType extends RealtimeEventType, TContext> = (data: RealtimeEventData<TType>, meta: RealtimeEventMeta<TType, TContext>) => void | Promise<void>;
type RealtimeEventHandlerEntry<TType extends RealtimeEventType, TContext> = RealtimeEventHandler<TType, TContext> | RealtimeEventHandler<TType, TContext>[];
type RealtimeEventHandlersMap<TContext> = Partial<{ [TType in RealtimeEventType]: RealtimeEventHandlerEntry<TType, TContext> }>;
type UseRealtimeOptions<TContext, THandlers extends RealtimeEventHandlersMap<TContext>> = {
events: THandlers;
websiteId?: string | null;
visitorId?: string | null;
context?: TContext;
onEventError?: (error: unknown, event: RealtimeEvent<RealtimeEventType>) => void;
};
declare function useRealtime<TContext = void, THandlers extends RealtimeEventHandlersMap<TContext> = RealtimeEventHandlersMap<TContext>>({
events,
websiteId,
visitorId,
context,
onEventError
}: UseRealtimeOptions<TContext, THandlers>): RealtimeContextValue;
//#endregion
export { RealtimeEventHandler, RealtimeEventHandlerEntry, RealtimeEventHandlersMap, RealtimeEventMeta, useRealtime };
//# sourceMappingURL=use-realtime.d.ts.map