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 {};