import { ReactiveController, ReactiveControllerHost } from 'lit';
import { SyncedState } from '@u-devtools/core';
/**
* Lit adapter for SyncedState.
* Works as a Reactive Controller.
* Automatically calls requestUpdate() on component when state changes.
*
* @template T - State value type
*
* @example
* ```typescript
* import { useBridgeState } from '@u-devtools/kit/lit';
* import { useDevTools } from './context';
*
* class MyElement extends LitElement {
* private bridge = useDevTools().bridge;
* private isOpen = useBridgeState(this, this.bridge.state('isOpen', false));
*
* render() {
* return html`
*
* `;
* }
* }
* ```
*/
export declare class BridgeStateController implements ReactiveController {
protected host: ReactiveControllerHost;
protected syncedState: SyncedState;
private _cleanup?;
constructor(host: ReactiveControllerHost, syncedState: SyncedState);
hostConnected(): void;
hostDisconnected(): void;
get value(): T;
set value(v: T);
}
/**
* Helper for creating controller (for convenience)
*
* @template T - State value type
* @param host - ReactiveControllerHost (usually LitElement)
* @param syncedState - SyncedState instance to synchronize
* @returns BridgeStateController instance
*
* @example
* ```typescript
* class MyElement extends LitElement {
* private isOpen = useBridgeState(this, bridge.state('isOpen', false));
* }
* ```
*/
export declare function useBridgeState(host: ReactiveControllerHost, syncedState: SyncedState): BridgeStateController;
//# sourceMappingURL=lit.d.ts.map