import { Constructor, WidgetProperties } from '../interfaces'; import { CustomElementChildType } from '../registerCustomElement'; import Registry from '../Registry'; export declare type CustomElementPropertyNames

= ((keyof P) | (keyof WidgetProperties))[]; /** * Defines the custom element configuration used by the customElement decorator */ export interface CustomElementConfig

{ /** * The tag of the custom element */ tag: string; /** * List of widget properties to expose as properties on the custom element */ properties?: CustomElementPropertyNames

; /** * List of attributes on the custom element to map to widget properties */ attributes?: CustomElementPropertyNames

; /** * List of events to expose */ events?: CustomElementPropertyNames

; childType?: CustomElementChildType; registryFactory?: () => Registry; } /** * This Decorator is provided properties that define the behavior of a custom element, and * registers that custom element. */ export declare function customElement

({tag, properties, attributes, events, childType, registryFactory}: CustomElementConfig

): >(target: T) => void; export default customElement;