import type { ObservableState } from '../observable.types';
/**
 * Creates an observable state object that allows subscribing to immutable state changes.
 *
 * This function creates a state management system with the following capabilities:
 * - Get the current state
 * - Update state partially
 * - Subscribe to state changes
 * - Unsubscribe from state changes
 *
 * @param getInitialState - A function that returns the initial state object
 * @returns An ObservableState object with methods to manage and observe state changes
 * @example
 * ```typescript
 * const state = createObservableState(() => ({
 *   count: 0,
 *   name: 'John'
 * }));
 *
 * // Subscribe to changes
 * const unsubscribe = state.subscribe((current, previous) => {
 *   console.log('State changed:', current, 'Previous:', previous);
 * });
 *
 * // Update state
 * state.set({ count: 1 });
 *
 * // Get current state
 * const currentState = state.get();
 *
 * // Unsubscribe when done
 * unsubscribe();
 * ```
  * @notInstrumented
 */
export declare const createObservableState: <T extends Record<string, unknown>>(getInitialState: () => T) => ObservableState<T>;
//# sourceMappingURL=createObservableState.d.ts.map