import { type Observable, Subject } from "rxjs"; /** * Creates a Subject and a callback to push events to it. * * @typeParam E - The event type. * @returns A tuple `[emit, subject]`. */ export declare function useEvent$(): readonly [(event: E) => void, Subject]; /** * Subscribes to an observable and executes a callback on emission. * * @typeParam T - The emitted value type. * @param observable - The observable to subscribe to. * @param subscribe - The callback function. */ export declare function useSubscribe(observable: Observable, subscribe: (e: T) => void): void; type UseObservableStateOptions = { persist?: string; }; /** * Manages state using an RxJS BehaviorSubject, with optional persistence. * * @remarks * This hook acts like `useState` but backed by an observable. * It supports persisting state to `localStorage` with debouncing. * * @typeParam S - The state type (must be an object). * @param getInitalState - The initial state or a function returning it. * @param options - Configuration options (persist key). * @returns A tuple `[state, setState]`. */ export declare function useObservableState(getInitalState: S | (() => S), options?: UseObservableStateOptions): readonly [S, (getNextValue: S | ((currentState: S) => S)) => void]; export {};