@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.
73 lines (72 loc) • 2.45 kB
TypeScript
import React from "react";
//#region ../react/src/provider.d.ts
type SupportProviderProps = {
children: React.ReactNode;
defaultOpen?: boolean;
apiUrl?: string;
wsUrl?: string;
publicKey?: string;
defaultMessages?: DefaultMessage[];
quickOptions?: string[];
autoConnect?: boolean;
onWsConnect?: () => void;
onWsDisconnect?: () => void;
onWsError?: (error: Error) => void;
size?: "normal" | "larger";
};
type CossistantProviderProps = SupportProviderProps;
type CossistantContextValue = {
website: PublicWebsiteResponse | null;
defaultMessages: DefaultMessage[];
quickOptions: string[];
setDefaultMessages: (messages: DefaultMessage[]) => void;
setQuickOptions: (options: string[]) => void;
unreadCount: number;
setUnreadCount: (count: number) => void;
isLoading: boolean;
error: Error | null;
client: CossistantClient;
isOpen: boolean;
open: () => void;
close: () => void;
toggle: () => void;
};
type WebsiteData = NonNullable<CossistantContextValue["website"]>;
type VisitorWithLocale = WebsiteData["visitor"] extends null | undefined ? undefined : NonNullable<WebsiteData["visitor"]> & {
locale: string | null;
};
type UseSupportValue = CossistantContextValue & {
availableHumanAgents: NonNullable<WebsiteData["availableHumanAgents"]> | [];
availableAIAgents: NonNullable<WebsiteData["availableAIAgents"]> | [];
visitor?: VisitorWithLocale;
size: "normal" | "larger";
};
declare const SupportContext: React.Context<CossistantContextValue | undefined>;
/**
* Hosts the entire customer support widget ecosystem by handing out context
* about the current website, visitor, unread counts, realtime subscriptions
* and the REST client. Provide your Cossistant public key plus optional
* defaults to configure the widget behaviour.
*/
declare function SupportProvider({
children,
apiUrl,
wsUrl,
publicKey,
defaultMessages,
quickOptions,
autoConnect,
onWsConnect,
onWsDisconnect,
onWsError,
size,
defaultOpen
}: SupportProviderProps): React.ReactElement;
/**
* Convenience hook that exposes the aggregated support context. Throws when it
* is consumed outside of `SupportProvider` to catch integration mistakes.
*/
declare function useSupport(): UseSupportValue;
//#endregion
export { CossistantContextValue, CossistantProviderProps, SupportContext, SupportProvider, SupportProviderProps, UseSupportValue, useSupport };
//# sourceMappingURL=provider2.d.ts.map