import type { Atom, Getter, WritableAtom } from 'jotai-expose-store'; declare global { interface SymbolConstructor { readonly observable: symbol; } } declare type Subscription = { unsubscribe: () => void; }; declare type Observer = { next: (value: T) => void; error: (error: unknown) => void; complete: () => void; }; declare type ObservableLike = { subscribe(observer: Observer): Subscription; subscribe(next: (value: T) => void, error?: (error: unknown) => void, complete?: () => void): Subscription; [Symbol.observable]?: () => ObservableLike; }; declare type SubjectLike = ObservableLike & Observer; export declare function atomWithObservable(createObservable: (get: Getter) => SubjectLike): WritableAtom; export declare function atomWithObservable(createObservable: (get: Getter) => ObservableLike): Atom; export {};