import { type EventName } from '@lit/react'; import type { ThemePropertyMixinClass } from '@vaadin/vaadin-themable-mixin/vaadin-theme-property-mixin.js'; import type React from 'react'; import type { RefAttributes } from 'react'; declare global { interface VaadinRegistration { is: string; version: string; } interface Vaadin { registrations?: VaadinRegistration[]; } interface Window { Vaadin?: Vaadin; } } export type EventNames = Record; type Constructor = { new (): T; name: string; }; type PolymerConstructor = Constructor & { _properties: Record; }; type Options = Readonly<{ displayName?: string; elementClass: Constructor | PolymerConstructor; events?: E; react: typeof window.React; tagName: string; }>; type EventListeners = { [K in keyof R]?: R[K] extends EventName ? (e: R[K]['__eventType']) => void : (e: Event) => void; }; type ElementProps = Partial> & { autofocus?: boolean; }; type ComponentProps = Omit, keyof E | keyof ElementProps> & EventListeners & ElementProps; export type ThemedWebComponentProps = ComponentProps & { /** * Attribute that can be used by the component to apply built-in style variants, * or to propagate its value to the sub-components in Shadow DOM. * * @see ThemePropertyMixinClass#_theme */ theme?: string; }; type AllWebComponentProps = I extends ThemePropertyMixinClass ? ThemedWebComponentProps : ComponentProps; export type WebComponentProps = Partial>; export declare function createComponent(options: Options): (props: WebComponentProps & RefAttributes) => React.ReactElement | null; export {}; //# sourceMappingURL=createComponent.d.ts.map