import { DetailedHTMLProps, HTMLAttributes } from 'react';
import { WebUiElementMap } from '../components';
import { ExtractProps, OmitLitBase, ReactCustomEventListeners } from './utils';
/**
* Lit Web Component 的 React 包装类型。
*
* - 标准 DOM 事件(input/change/focus/blur)使用 React 惯用 camelCase handler,
* `currentTarget` 收窄为组件实例(`target` 遵循 React SyntheticEvent 语义,不承诺)。
* - kebab-case 自定义事件(open-change/toast-close)生成精确的 `on` 绑定。
* - 与 `HTMLAttributes` 全量交叉:组件自身属性与通用 HTML 属性(含原生事件)共存,
* 重叠键类型相容(如 `placeholder`),组件类型在交叉中自然生效;`ref` 保持具体元素类型。
*/
export type LitReactWrapper = DetailedHTMLProps> & ReactCustomEventListeners & HTMLAttributes, T>;
export type WebUiComponents = {
[K in keyof WebUiElementMap]: LitReactWrapper;
};
declare module 'react' {
namespace JSX {
interface IntrinsicElements extends WebUiComponents {
}
}
}