@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.
32 lines (31 loc) • 1.62 kB
TypeScript
import { RealtimeContextValue } from "./provider3.js";
//#region ../react/src/realtime/use-realtime.d.ts
type RealtimeHandlerContext<TContext> = TContext;
type RealtimeEventMeta<TType$1 extends RealtimeEventType, TContext> = {
event: RealtimeEvent<TType$1>;
context: RealtimeHandlerContext<TContext>;
};
type RealtimeEventHandler<TType$1 extends RealtimeEventType, TContext> = (data: RealtimeEventData<TType$1>, meta: RealtimeEventMeta<TType$1, TContext>) => void | Promise<void>;
type RealtimeEventHandlerEntry<TType$1 extends RealtimeEventType, TContext> = RealtimeEventHandler<TType$1, TContext> | RealtimeEventHandler<TType$1, 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;
};
/**
* Binds realtime connection events to typed handler maps with automatic
* filtering by website/visitor ids.
*/
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