/* 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/core/internal";
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 InternalEchartsRenderer {
        "content": any;
        /**
          * @default '300px'
         */
        "height": string;
        /**
          * @default true
         */
        "responsive": boolean;
        /**
          * @default true
         */
        "showLoading": boolean;
        /**
          * @default 'default'
         */
        "theme": string;
        /**
          * @default '100%'
         */
        "width": string;
    }
    interface InternalMarkdownRenderer {
        /**
          * @default ''
         */
        "content": string;
        /**
          * @default true
         */
        "enableFootnotes": boolean;
        /**
          * @default true
         */
        "enableTables": boolean;
        /**
          * @default true
         */
        "enableTaskLists": boolean;
        /**
          * @default true
         */
        "highlightCode": boolean;
    }
    interface InternalMessageInput {
        /**
          * @default false
         */
        "disabled": boolean;
        /**
          * @default 1000
         */
        "maxLength": number;
        /**
          * @default false
         */
        "multiline": boolean;
        /**
          * @default '输入消息...'
         */
        "placeholder": string;
        /**
          * @default '发送'
         */
        "sendButtonText": string;
        /**
          * @default true
         */
        "showCharCount": boolean;
    }
    interface InternalTextRenderer {
        /**
          * @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 InternalMessageInputCustomEvent<T> extends CustomEvent<T> {
    detail: T;
    target: HTMLInternalMessageInputElement;
}
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 HTMLInternalEchartsRendererElement extends Components.InternalEchartsRenderer, HTMLStencilElement {
    }
    var HTMLInternalEchartsRendererElement: {
        prototype: HTMLInternalEchartsRendererElement;
        new (): HTMLInternalEchartsRendererElement;
    };
    interface HTMLInternalMarkdownRendererElement extends Components.InternalMarkdownRenderer, HTMLStencilElement {
    }
    var HTMLInternalMarkdownRendererElement: {
        prototype: HTMLInternalMarkdownRendererElement;
        new (): HTMLInternalMarkdownRendererElement;
    };
    interface HTMLInternalMessageInputElementEventMap {
        "messageSend": { content: string; timestamp: number };
        "inputChange": string;
        "inputFocus": void;
        "inputBlur": void;
    }
    interface HTMLInternalMessageInputElement extends Components.InternalMessageInput, HTMLStencilElement {
        addEventListener<K extends keyof HTMLInternalMessageInputElementEventMap>(type: K, listener: (this: HTMLInternalMessageInputElement, ev: InternalMessageInputCustomEvent<HTMLInternalMessageInputElementEventMap[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 HTMLInternalMessageInputElementEventMap>(type: K, listener: (this: HTMLInternalMessageInputElement, ev: InternalMessageInputCustomEvent<HTMLInternalMessageInputElementEventMap[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 HTMLInternalMessageInputElement: {
        prototype: HTMLInternalMessageInputElement;
        new (): HTMLInternalMessageInputElement;
    };
    interface HTMLInternalTextRendererElement extends Components.InternalTextRenderer, HTMLStencilElement {
    }
    var HTMLInternalTextRendererElement: {
        prototype: HTMLInternalTextRendererElement;
        new (): HTMLInternalTextRendererElement;
    };
    interface HTMLElementTagNameMap {
        "ai-chat": HTMLAiChatElement;
        "internal-echarts-renderer": HTMLInternalEchartsRendererElement;
        "internal-markdown-renderer": HTMLInternalMarkdownRendererElement;
        "internal-message-input": HTMLInternalMessageInputElement;
        "internal-text-renderer": HTMLInternalTextRendererElement;
    }
}
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 InternalEchartsRenderer {
        "content"?: any;
        /**
          * @default '300px'
         */
        "height"?: string;
        /**
          * @default true
         */
        "responsive"?: boolean;
        /**
          * @default true
         */
        "showLoading"?: boolean;
        /**
          * @default 'default'
         */
        "theme"?: string;
        /**
          * @default '100%'
         */
        "width"?: string;
    }
    interface InternalMarkdownRenderer {
        /**
          * @default ''
         */
        "content"?: string;
        /**
          * @default true
         */
        "enableFootnotes"?: boolean;
        /**
          * @default true
         */
        "enableTables"?: boolean;
        /**
          * @default true
         */
        "enableTaskLists"?: boolean;
        /**
          * @default true
         */
        "highlightCode"?: boolean;
    }
    interface InternalMessageInput {
        /**
          * @default false
         */
        "disabled"?: boolean;
        /**
          * @default 1000
         */
        "maxLength"?: number;
        /**
          * @default false
         */
        "multiline"?: boolean;
        "onInputBlur"?: (event: InternalMessageInputCustomEvent<void>) => void;
        "onInputChange"?: (event: InternalMessageInputCustomEvent<string>) => void;
        "onInputFocus"?: (event: InternalMessageInputCustomEvent<void>) => void;
        "onMessageSend"?: (event: InternalMessageInputCustomEvent<{ content: string; timestamp: number }>) => void;
        /**
          * @default '输入消息...'
         */
        "placeholder"?: string;
        /**
          * @default '发送'
         */
        "sendButtonText"?: string;
        /**
          * @default true
         */
        "showCharCount"?: boolean;
    }
    interface InternalTextRenderer {
        /**
          * @default true
         */
        "autoLink"?: boolean;
        /**
          * @default ''
         */
        "content"?: string;
        /**
          * @default false
         */
        "highlightCode"?: boolean;
        /**
          * @default true
         */
        "preserveWhitespace"?: boolean;
    }
    interface IntrinsicElements {
        "ai-chat": AiChat;
        "internal-echarts-renderer": InternalEchartsRenderer;
        "internal-markdown-renderer": InternalMarkdownRenderer;
        "internal-message-input": InternalMessageInput;
        "internal-text-renderer": InternalTextRenderer;
    }
}
export { LocalJSX as JSX };
declare module "@stencil/core" {
    export namespace JSX {
        interface IntrinsicElements {
            "ai-chat": LocalJSX.AiChat & JSXBase.HTMLAttributes<HTMLAiChatElement>;
            "internal-echarts-renderer": LocalJSX.InternalEchartsRenderer & JSXBase.HTMLAttributes<HTMLInternalEchartsRendererElement>;
            "internal-markdown-renderer": LocalJSX.InternalMarkdownRenderer & JSXBase.HTMLAttributes<HTMLInternalMarkdownRendererElement>;
            "internal-message-input": LocalJSX.InternalMessageInput & JSXBase.HTMLAttributes<HTMLInternalMessageInputElement>;
            "internal-text-renderer": LocalJSX.InternalTextRenderer & JSXBase.HTMLAttributes<HTMLInternalTextRendererElement>;
        }
    }
}
