import { CSSResult, CSSResultGroup, LitElement, PropertyValueMap } from "lit";
import ContextConsumer from "./ContextConsumer";
import { PaywallContextProvider } from "./ContextProvider";
import { TBaseComponent } from '@namiml/sdk-core';
export declare class NamiElementBase extends LitElement {
    static styles: CSSResultGroup;
    contextConsumer: ContextConsumer;
    contextProvider: PaywallContextProvider;
    private _instanceStyleSheet?;
    private _instanceStyleElement?;
    constructor();
    protected styles(): CSSResult;
    createRenderRoot(): HTMLElement | DocumentFragment;
    protected shouldUpdate(): boolean;
    protected willUpdate(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
    disconnectedCallback(): void;
    protected getInstanceStyles(): CSSResult[];
    private ensureInstanceStyleTarget;
    private applyInstanceStyles;
}
export declare abstract class NamiElement<C extends TBaseComponent = TBaseComponent> extends NamiElementBase {
    static styles: CSSResultGroup;
    contextConsumer: ContextConsumer;
    contextProvider: PaywallContextProvider;
    abstract component: C;
    protected willUpdate(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
    private applyTestId;
    private applySpeechLabel;
    protected animationStyles(): CSSResult;
    protected getInstanceStyles(): CSSResult[];
}
