import { LitElement, PropertyDeclaration, ReactiveController } from 'lit'; export interface SbbPropertyValues { oldValue?: unknown; value?: unknown; } export interface SbbReactiveController extends ReactiveController { hostPropertyUpdate?(name: PropertyKey, values?: SbbPropertyValues, options?: PropertyDeclaration): void; } declare const SbbElement_base: import('../mixins.ts').AbstractConstructor & import('../mixins.ts').AbstractConstructor & typeof LitElement & import('../mixins/element-internals-mixin.ts').SbbElementInternalsConstructor; /** * A base class for all SBB elements. */ export declare class SbbElement extends SbbElement_base { static ['_$sbbElement$']: boolean; static readonly elementName: string; private _controllers?; /** * Register the custom element to the specified CustomElementRegistry. * If none is provided, defaults to the global `customElements` registry. * @param customElementRegistry Optional CustomElementRegistry to register this element to. * Defaults to the global `customElements` instance. */ static define(customElementRegistry?: CustomElementRegistry): void; /** * Registers a `ReactiveController` to participate in the element's reactive * update cycle. The element automatically calls into any registered * controllers during its lifecycle callbacks. * * If the element is connected when `addController()` is called, the * controller's `hostConnected()` callback will be immediately called. */ addController(controller: SbbReactiveController): void; /** * Removes a `ReactiveController` from the element. */ removeController(controller: SbbReactiveController): void; /** * Requests an update which is processed asynchronously. This should be called * when an element should update based on some state not triggered by setting * a reactive property. In this case, pass no arguments. It should also be * called when manually implementing a property setter. In this case, pass the * property `name` and `oldValue` to ensure that any configured property * options are honored. * * @param name name of requesting property * @param oldValue old value of requesting property * @param options property options to use instead of the previously * configured options * @param useNewValue if true, the newValue argument is used instead of * reading the property value. This is important to use if the reactive * property is a standard private accessor, as opposed to a plain * property, since private members can't be dynamically read by name. * @param newValue the new value of the property. This is only used if * `useNewValue` is true. */ requestUpdate(name?: PropertyKey, oldValue?: unknown, options?: PropertyDeclaration, useNewValue?: boolean, newValue?: unknown): void; } export {}; //# sourceMappingURL=element.d.ts.map