import { Cell } from "sodiumjs";
import { EventStreamMap, NodeSource } from "./types";
declare type AttrCells = {
    [key: string]: Cell<string>;
};
declare type CustomCSSVariables = {
    [key: string]: string | Cell<string>;
};
export declare abstract class jshtmlElement extends HTMLElement {
    static observedShadowEvents: string[];
    static observedAttributes: string[];
    /**
     * ShadowRootのコンテンツとしてmountされるjshtmlソース。
     */
    abstract shadowSource: NodeSource;
    /**
     * ShadowRootでlistenするEventのStream。
     */
    shadowEvents: EventStreamMap;
    /**
     * AttributesのCell。static observedAttributesで指定した属性のCell。
     */
    attrCells: AttrCells;
    /**
     * CSSカスタムプロパティのリスト。ShadowDOMのスタイルで使いたい変数を設定する。変数名であることを示す二重ハイフン(--)は不要。
     */
    cssVars?: CustomCSSVariables;
    /**
     * connected / disconnectedに合わせてShadowRootからmount / unmountする。
     */
    private _mount?;
    private _unmount;
    constructor();
    connectedCallback(): any;
    disconnectedCallback(): void;
    attributeChangedCallback(n: string, old: string, v: string): void;
}
export {};
