import { Atom, Getter, WritableAtom } from 'jotai'; declare type AnyError = unknown; declare global { interface SymbolConstructor { readonly observable: symbol; } } declare type Subscription = { unsubscribe: () => void; }; declare type Observer = { next: (value: T) => void; error: (error: AnyError) => void; complete: () => void; }; declare type ObservableLike = { [Symbol.observable]?: () => ObservableLike | undefined; } & ({ subscribe(observer: Partial>): Subscription; } | { subscribe(observer: Partial>): Subscription; subscribe(next: (value: T) => void): Subscription; }); declare type SubjectLike = ObservableLike & Observer; declare type Options = { initialValue?: Data | (() => Data); unstable_timeout?: number; }; export declare function atomWithObservable(getObservable: (get: Getter) => SubjectLike, options?: Options): WritableAtom; export declare function atomWithObservable(getObservable: (get: Getter) => ObservableLike, options?: Options): Atom; export {}; declare type Awaited = T extends Promise ? V : T;