/* eslint-disable */
/* tslint:disable */
/**
 * This is an autogenerated file created by the Stencil compiler.
 * It contains typing information for all components that exist in this project.
 */
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
import { ChatMessage } from "./components/ai-chat/ai-chat";
export { ChatMessage } from "./components/ai-chat/ai-chat";
export namespace Components {
    interface AiChat {
        /**
          * AI头像URL
          * @default ''
         */
        "aiAvatar": string;
        /**
          * 自定义渲染器映射
          * @default {}
         */
        "customRenderers": { [key: string]: string };
        /**
          * 是否禁用输入
          * @default false
         */
        "inputDisabled": boolean;
        /**
          * 输入框占位符
          * @default '输入消息...'
         */
        "inputPlaceholder": string;
        /**
          * 最大输入长度
          * @default 1000
         */
        "maxInputLength": number;
        /**
          * 聊天消息列表
          * @default []
         */
        "messages": ChatMessage[];
        /**
          * 是否支持多行输入
          * @default true
         */
        "multilineInput": boolean;
        /**
          * 是否显示AI头像
          * @default true
         */
        "showAiAvatar": boolean;
        /**
          * 是否显示输入框
          * @default true
         */
        "showInput": boolean;
        /**
          * 是否显示时间戳
          * @default true
         */
        "showTimestamp": boolean;
        /**
          * 是否显示用户头像
          * @default true
         */
        "showUserAvatar": boolean;
        /**
          * 用户头像URL
          * @default ''
         */
        "userAvatar": string;
    }
    interface EchartsRenderer {
        /**
          * ECharts配置对象
          * @default {}
         */
        "content": any;
        /**
          * 图表高度
          * @default '300px'
         */
        "height": string;
        /**
          * 是否响应式
          * @default true
         */
        "responsive": boolean;
        /**
          * 是否显示加载动画
          * @default true
         */
        "showLoading": boolean;
        /**
          * 主题名称
          * @default 'default'
         */
        "theme": string;
        /**
          * 图表宽度
          * @default '100%'
         */
        "width": string;
    }
    interface MarkdownRenderer {
        /**
          * 要渲染的Markdown内容
          * @default ''
         */
        "content": string;
        /**
          * 是否启用脚注
          * @default true
         */
        "enableFootnotes": boolean;
        /**
          * 是否启用表格
          * @default true
         */
        "enableTables": boolean;
        /**
          * 是否启用任务列表
          * @default true
         */
        "enableTaskLists": boolean;
        /**
          * 是否启用代码高亮
          * @default true
         */
        "highlightCode": boolean;
    }
    interface MessageInput {
        /**
          * 是否自动聚焦
          * @default false
         */
        "autoFocus": boolean;
        /**
          * 是否禁用输入
          * @default false
         */
        "disabled": boolean;
        /**
          * 最大输入长度
          * @default 1000
         */
        "maxLength": number;
        /**
          * 是否支持多行输入
          * @default true
         */
        "multiline": boolean;
        /**
          * 占位符文本
          * @default '输入消息...'
         */
        "placeholder": string;
        /**
          * 发送按钮文本
          * @default '发送'
         */
        "sendButtonText": string;
        /**
          * 是否显示发送按钮
          * @default true
         */
        "showSendButton": boolean;
    }
    interface TextRenderer {
        /**
          * 是否支持链接自动识别
          * @default true
         */
        "autoLink": boolean;
        /**
          * 要渲染的文本内容
          * @default ''
         */
        "content": string;
        /**
          * 是否支持代码高亮
          * @default false
         */
        "highlightCode": boolean;
        /**
          * 是否保留换行符
          * @default true
         */
        "preserveWhitespace": boolean;
    }
}
export interface AiChatCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLAiChatElement;
}
export interface MessageInputCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLMessageInputElement;
}
declare global {
    interface HTMLAiChatElementEventMap {
        "messageClick": ChatMessage;
        "messageLongPress": ChatMessage;
        "messageSend": { content: string; timestamp: number };
    }
    interface HTMLAiChatElement extends Components.AiChat, HTMLStencilElement {
        addEventListener<K extends keyof HTMLAiChatElementEventMap>(type: K, listener: (this: HTMLAiChatElement, ev: AiChatCustomEvent<HTMLAiChatElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLAiChatElementEventMap>(type: K, listener: (this: HTMLAiChatElement, ev: AiChatCustomEvent<HTMLAiChatElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLAiChatElement: {
        prototype: HTMLAiChatElement;
        new (): HTMLAiChatElement;
    };
    interface HTMLEchartsRendererElement extends Components.EchartsRenderer, HTMLStencilElement {
    }
    var HTMLEchartsRendererElement: {
        prototype: HTMLEchartsRendererElement;
        new (): HTMLEchartsRendererElement;
    };
    interface HTMLMarkdownRendererElement extends Components.MarkdownRenderer, HTMLStencilElement {
    }
    var HTMLMarkdownRendererElement: {
        prototype: HTMLMarkdownRendererElement;
        new (): HTMLMarkdownRendererElement;
    };
    interface HTMLMessageInputElementEventMap {
        "messageSend": { content: string; timestamp: number };
        "inputChange": string;
    }
    interface HTMLMessageInputElement extends Components.MessageInput, HTMLStencilElement {
        addEventListener<K extends keyof HTMLMessageInputElementEventMap>(type: K, listener: (this: HTMLMessageInputElement, ev: MessageInputCustomEvent<HTMLMessageInputElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        removeEventListener<K extends keyof HTMLMessageInputElementEventMap>(type: K, listener: (this: HTMLMessageInputElement, ev: MessageInputCustomEvent<HTMLMessageInputElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
    }
    var HTMLMessageInputElement: {
        prototype: HTMLMessageInputElement;
        new (): HTMLMessageInputElement;
    };
    interface HTMLTextRendererElement extends Components.TextRenderer, HTMLStencilElement {
    }
    var HTMLTextRendererElement: {
        prototype: HTMLTextRendererElement;
        new (): HTMLTextRendererElement;
    };
    interface HTMLElementTagNameMap {
        "ai-chat": HTMLAiChatElement;
        "echarts-renderer": HTMLEchartsRendererElement;
        "markdown-renderer": HTMLMarkdownRendererElement;
        "message-input": HTMLMessageInputElement;
        "text-renderer": HTMLTextRendererElement;
    }
}
declare namespace LocalJSX {
    interface AiChat {
        /**
          * AI头像URL
          * @default ''
         */
        "aiAvatar"?: string;
        /**
          * 自定义渲染器映射
          * @default {}
         */
        "customRenderers"?: { [key: string]: string };
        /**
          * 是否禁用输入
          * @default false
         */
        "inputDisabled"?: boolean;
        /**
          * 输入框占位符
          * @default '输入消息...'
         */
        "inputPlaceholder"?: string;
        /**
          * 最大输入长度
          * @default 1000
         */
        "maxInputLength"?: number;
        /**
          * 聊天消息列表
          * @default []
         */
        "messages"?: ChatMessage[];
        /**
          * 是否支持多行输入
          * @default true
         */
        "multilineInput"?: boolean;
        /**
          * 消息点击事件
         */
        "onMessageClick"?: (event: AiChatCustomEvent<ChatMessage>) => void;
        /**
          * 消息长按事件
         */
        "onMessageLongPress"?: (event: AiChatCustomEvent<ChatMessage>) => void;
        /**
          * 消息发送事件
         */
        "onMessageSend"?: (event: AiChatCustomEvent<{ content: string; timestamp: number }>) => void;
        /**
          * 是否显示AI头像
          * @default true
         */
        "showAiAvatar"?: boolean;
        /**
          * 是否显示输入框
          * @default true
         */
        "showInput"?: boolean;
        /**
          * 是否显示时间戳
          * @default true
         */
        "showTimestamp"?: boolean;
        /**
          * 是否显示用户头像
          * @default true
         */
        "showUserAvatar"?: boolean;
        /**
          * 用户头像URL
          * @default ''
         */
        "userAvatar"?: string;
    }
    interface EchartsRenderer {
        /**
          * ECharts配置对象
          * @default {}
         */
        "content"?: any;
        /**
          * 图表高度
          * @default '300px'
         */
        "height"?: string;
        /**
          * 是否响应式
          * @default true
         */
        "responsive"?: boolean;
        /**
          * 是否显示加载动画
          * @default true
         */
        "showLoading"?: boolean;
        /**
          * 主题名称
          * @default 'default'
         */
        "theme"?: string;
        /**
          * 图表宽度
          * @default '100%'
         */
        "width"?: string;
    }
    interface MarkdownRenderer {
        /**
          * 要渲染的Markdown内容
          * @default ''
         */
        "content"?: string;
        /**
          * 是否启用脚注
          * @default true
         */
        "enableFootnotes"?: boolean;
        /**
          * 是否启用表格
          * @default true
         */
        "enableTables"?: boolean;
        /**
          * 是否启用任务列表
          * @default true
         */
        "enableTaskLists"?: boolean;
        /**
          * 是否启用代码高亮
          * @default true
         */
        "highlightCode"?: boolean;
    }
    interface MessageInput {
        /**
          * 是否自动聚焦
          * @default false
         */
        "autoFocus"?: boolean;
        /**
          * 是否禁用输入
          * @default false
         */
        "disabled"?: boolean;
        /**
          * 最大输入长度
          * @default 1000
         */
        "maxLength"?: number;
        /**
          * 是否支持多行输入
          * @default true
         */
        "multiline"?: boolean;
        /**
          * 输入变化事件
         */
        "onInputChange"?: (event: MessageInputCustomEvent<string>) => void;
        /**
          * 消息发送事件
         */
        "onMessageSend"?: (event: MessageInputCustomEvent<{ content: string; timestamp: number }>) => void;
        /**
          * 占位符文本
          * @default '输入消息...'
         */
        "placeholder"?: string;
        /**
          * 发送按钮文本
          * @default '发送'
         */
        "sendButtonText"?: string;
        /**
          * 是否显示发送按钮
          * @default true
         */
        "showSendButton"?: boolean;
    }
    interface TextRenderer {
        /**
          * 是否支持链接自动识别
          * @default true
         */
        "autoLink"?: boolean;
        /**
          * 要渲染的文本内容
          * @default ''
         */
        "content"?: string;
        /**
          * 是否支持代码高亮
          * @default false
         */
        "highlightCode"?: boolean;
        /**
          * 是否保留换行符
          * @default true
         */
        "preserveWhitespace"?: boolean;
    }
    interface IntrinsicElements {
        "ai-chat": AiChat;
        "echarts-renderer": EchartsRenderer;
        "markdown-renderer": MarkdownRenderer;
        "message-input": MessageInput;
        "text-renderer": TextRenderer;
    }
}
export { LocalJSX as JSX };
declare module "@stencil/core" {
    export namespace JSX {
        interface IntrinsicElements {
            "ai-chat": LocalJSX.AiChat & JSXBase.HTMLAttributes<HTMLAiChatElement>;
            "echarts-renderer": LocalJSX.EchartsRenderer & JSXBase.HTMLAttributes<HTMLEchartsRendererElement>;
            "markdown-renderer": LocalJSX.MarkdownRenderer & JSXBase.HTMLAttributes<HTMLMarkdownRendererElement>;
            "message-input": LocalJSX.MessageInput & JSXBase.HTMLAttributes<HTMLMessageInputElement>;
            "text-renderer": LocalJSX.TextRenderer & JSXBase.HTMLAttributes<HTMLTextRendererElement>;
        }
    }
}
