/** * @license * Copyright (c) 2023 Valentin Degenne * SPDX-License-Identifier: MIT * * Thanks to Steve Orvell for helping me find a solution (Proxy). */ import { LitElement, type ReactiveControllerHost } from 'lit'; import { type PropertyValues, ReactiveObject } from 'snar'; interface MultiHostReactiveController { hostConnected(host: ReactiveControllerHost): void; hostDisconnected(host: ReactiveControllerHost): void; } export declare class ReactiveController extends ReactiveObject implements MultiHostReactiveController { protected _hosts: ReactiveControllerHost[]; constructor(host?: ReactiveControllerHost, defaultState?: Partial); bind(host: ReactiveControllerHost, target?: PropertyKey): this; unbind(): void; protected __update(_changedProperties: PropertyValues): void; addHost(host: ReactiveControllerHost): void; removeHost(host: ReactiveControllerHost): void; hasHost(host: ReactiveControllerHost): boolean; hostConnected(host: ReactiveControllerHost): void; hostDisconnected(host: ReactiveControllerHost): void; remoteUpdateComplete(): Promise; /** * Unattach controller from all disconnected hosts * and remove them from the list, so the garbage-collector * can potentially suppresses them if they are not * used anymore. */ flushDisconnectedHosts(): void; } export declare class LitElementControllerHost extends LitElement { controller: T; } export {}; //# sourceMappingURL=reactive-controller.d.ts.map