/**
 * Creates a lightweight pub/sub observer.
 *
 * Subscribers are stored in a Map keyed by a caller-provided string identifier,
 * so a single mount point can subscribe once and cleanly unsubscribe by key
 * without affecting other subscribers.
 *
 * @example
 * ```ts
 * const myObserver = createObserver<{ message: string }>();
 *
 * myObserver.subscribe('my-component', (data) => console.log(data.message));
 * myObserver.dispatch({ message: 'Hello' });
 * myObserver.unsubscribe('my-component');
 * ```
 */
export declare function createObserver<T>(): {
    subscribe: (key: string, fn: (data: T) => void) => void;
    unsubscribe: (key: string) => void;
    dispatch: (data: T) => void;
};
