export type Constructor = { new (...args: any[]): T; }; interface ClassDescriptor { kind: "class"; elements: ClassElement[]; finisher?: (clazz: Constructor) => undefined | Constructor; } interface ClassElement { kind: "field" | "method"; key: PropertyKey; placement: "static" | "prototype" | "own"; initializer?: Function; extras?: ClassElement[]; finisher?: (clazz: Constructor) => undefined | Constructor; descriptor?: PropertyDescriptor; } /** * Class decorator factory that defines the decorated class as a custom element. * * ``` * @registerCustomElement('my-element') * class MyElement { * render() { * return html``; * } * } * ``` * @category Decorator * @param tagName The name of the custom element to define. */ export declare const registerCustomElement: (tagName: string) => (classOrDescriptor: Constructor | ClassDescriptor) => any; export {};