import { OpenAIChatKit, ChatKitOptions, ChatKitEvents } from '@openai/chatkit'; export * from '@openai/chatkit'; import * as React from 'react'; type DotToCamelCase = S extends `${infer Head}.${infer Tail}` ? `${Head}${Capitalize>}` : S; declare const CHATKIT_METHOD_NAMES: readonly ["focusComposer", "setThreadId", "sendUserMessage", "setComposerValue", "fetchUpdates", "sendCustomAction", "showHistory", "hideHistory"]; type ChatKitMethod = (typeof CHATKIT_METHOD_NAMES)[number]; type ChatKitMethods = { [K in ChatKitMethod]: OpenAIChatKit[K]; }; type ToEventHandlerKey = DotToCamelCase extends `chatkit${infer EventName}` ? `on${Capitalize}` : never; type ChatKitEventHandlers = Partial<{ [K in keyof ChatKitEvents as ToEventHandlerKey]: ChatKitEvents[K] extends CustomEvent ? Detail extends undefined ? () => void : (event: Detail) => void : never; }>; type UseChatKitOptions = ChatKitOptions & ChatKitEventHandlers; type ChatKitControl = { setInstance: (instance: OpenAIChatKit | null) => void; options: ChatKitOptions; handlers: ChatKitEventHandlers; }; type UseChatKitReturn = ChatKitMethods & { control: ChatKitControl; ref: React.RefObject; }; declare function useChatKit(options: UseChatKitOptions): UseChatKitReturn; interface ChatKitProps extends React.HTMLAttributes { control: ChatKitControl; } declare module 'react' { namespace JSX { interface IntrinsicElements { 'openai-chatkit': React.DetailedHTMLProps, OpenAIChatKit>; } } } declare const ChatKit: React.ForwardRefExoticComponent>; export { ChatKit, type ChatKitControl, type UseChatKitOptions, type UseChatKitReturn, useChatKit };