'use client';

/**
 * This file was automatically generated by the Stencil React Output Target.
 * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
 */

/* eslint-disable */

import type { EventName, StencilReactComponent } from '@stencil/react-output-target/runtime';
import { createComponent } from '@stencil/react-output-target/runtime';
import { type AiChatCustomEvent, type ChatMessage } from "hxy-stencil-ai-chat";
import { AiChat as AiChatElement, defineCustomElement as defineAiChat } from "hxy-stencil-ai-chat/dist/components/ai-chat.js";
import { EchartsRenderer as EchartsRendererElement, defineCustomElement as defineEchartsRenderer } from "hxy-stencil-ai-chat/dist/components/echarts-renderer.js";
import { MarkdownRenderer as MarkdownRendererElement, defineCustomElement as defineMarkdownRenderer } from "hxy-stencil-ai-chat/dist/components/markdown-renderer.js";
import { MessageInput as MessageInputElement, defineCustomElement as defineMessageInput } from "hxy-stencil-ai-chat/dist/components/message-input.js";
import { TextRenderer as TextRendererElement, defineCustomElement as defineTextRenderer } from "hxy-stencil-ai-chat/dist/components/text-renderer.js";
import React from 'react';

export type AiChatEvents = {
    onMessageClick: EventName<AiChatCustomEvent<ChatMessage>>,
    onMessageLongPress: EventName<AiChatCustomEvent<ChatMessage>>,
    onMessageSend: EventName<CustomEvent<{ content: string; timestamp: number }>>
};

export const AiChat: StencilReactComponent<AiChatElement, AiChatEvents> = /*@__PURE__*/ createComponent<AiChatElement, AiChatEvents>({
    tagName: 'ai-chat',
    elementClass: AiChatElement,
    // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
    react: React,
    events: {
        onMessageClick: 'messageClick',
        onMessageLongPress: 'messageLongPress',
        onMessageSend: 'messageSend'
    } as AiChatEvents,
    defineCustomElement: defineAiChat
});

export type EchartsRendererEvents = NonNullable<unknown>;

export const EchartsRenderer: StencilReactComponent<EchartsRendererElement, EchartsRendererEvents> = /*@__PURE__*/ createComponent<EchartsRendererElement, EchartsRendererEvents>({
    tagName: 'echarts-renderer',
    elementClass: EchartsRendererElement,
    // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
    react: React,
    events: {} as EchartsRendererEvents,
    defineCustomElement: defineEchartsRenderer
});

export type MarkdownRendererEvents = NonNullable<unknown>;

export const MarkdownRenderer: StencilReactComponent<MarkdownRendererElement, MarkdownRendererEvents> = /*@__PURE__*/ createComponent<MarkdownRendererElement, MarkdownRendererEvents>({
    tagName: 'markdown-renderer',
    elementClass: MarkdownRendererElement,
    // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
    react: React,
    events: {} as MarkdownRendererEvents,
    defineCustomElement: defineMarkdownRenderer
});

export type MessageInputEvents = {
    onMessageSend: EventName<CustomEvent<{ content: string; timestamp: number }>>,
    onInputChange: EventName<CustomEvent<string>>
};

export const MessageInput: StencilReactComponent<MessageInputElement, MessageInputEvents> = /*@__PURE__*/ createComponent<MessageInputElement, MessageInputEvents>({
    tagName: 'message-input',
    elementClass: MessageInputElement,
    // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
    react: React,
    events: {
        onMessageSend: 'messageSend',
        onInputChange: 'inputChange'
    } as MessageInputEvents,
    defineCustomElement: defineMessageInput
});

export type TextRendererEvents = NonNullable<unknown>;

export const TextRenderer: StencilReactComponent<TextRendererElement, TextRendererEvents> = /*@__PURE__*/ createComponent<TextRendererElement, TextRendererEvents>({
    tagName: 'text-renderer',
    elementClass: TextRendererElement,
    // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
    react: React,
    events: {} as TextRendererEvents,
    defineCustomElement: defineTextRenderer
});
