import { default as React, FC, ComponentType, ComponentPropsWithoutRef, ComponentProps, ElementType } from 'react'; export type {ChangeLog} from './types'; export type RuntimeContextValue = { state: any; dispatch: any; appId: string; shop: any; toolCalls: any[]; changeLogs: ChangeLog[]; isLoading: boolean; isLoadingContext: boolean; }; export type Thread = { id: string; title: string; messages: Message[]; generating?: boolean; suggestedQuestions?: string[]; }; export type Message = { id: string; content: string; role: 'user' | 'bot'; timestamp: Date; }; export interface IndexedResource { key: string; name: string; lastIndexed?: string; status: 'success' | 'pending' | 'error' | 'none'; } export interface Theme { id: string; name: string; description?: string; role?: string; indexing?: boolean; lastIndexedAt?: Date; updatedAt?: Date; } export type PreComponent = ComponentType< ComponentPropsWithoutRef<'pre'> & {node?: Element | undefined} >; export type CodeComponent = ComponentType< ComponentPropsWithoutRef<'code'> & {node?: Element | undefined} >; export type CodeHeaderProps = { node?: Element | undefined; language: string | undefined; code: string; }; export type SyntaxHighlighterProps = { node?: Element | undefined; components: { Pre: PreComponent; Code: CodeComponent; }; language: string; code: string; }; export type Components = { [Key in Extract]?: ComponentType>; } & { SyntaxHighlighter?: ComponentType> | undefined; CodeHeader?: ComponentType> | undefined; }; export type RuntimeProviderProps = { appId?: string; backEndUrl: string; shopDomain: string; hooks?: { onSelectPlan?: (planId: string, isTrial?: boolean) => Promise; }; }; export interface BaseChatComponentProps { id?: string; data?: any; children?: React.ReactNode; } export interface SiderProps { children?: React.ReactNode; defaultWidth?: number; minWidth?: number; maxWidth?: number; className?: string; isThreadMode?: boolean; threadProps?: any; } declare const RuntimeProvider: FC; declare const ChatPage: FC; declare const OnboardingChat: FC; declare const Sider: FC; declare const useRuntime: () => RuntimeContextValue; export {RuntimeProvider, ChatPage, useRuntime, OnboardingChat, Sider};