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