import { HTMLBaseView } from './elements'; type CustomElementOptions = { template?: string; }; type CustomElementConstructor = new (el: CustomHTMLElement) => CustomElementView; declare abstract class CustomHTMLElement extends HTMLElement { private wasConnected; private isReady; _view: CustomElementView; connectedCallback(): Promise; disconnectedCallback(): void; } /** * Base class for custom HTML elements. In addition to other custom methods, * it can implement `created()` and `ready()` methods that are executed during * the element lifecycle. */ export declare abstract class CustomElementView extends HTMLBaseView { created(): void; ready(): void; } export declare const CUSTOM_ELEMENTS: Map; /** * Decorator for registering a new custom HTML element. */ export declare function register(tagName: string, options?: CustomElementOptions): (ElementClass: CustomElementConstructor) => void; export {};