import { Atom, Getter, WritableAtom } from 'jotai'; type AnyError = unknown; declare global { interface SymbolConstructor { readonly observable: symbol; } } type Subscription = { unsubscribe: () => void; }; type Observer = { next: (value: T) => void; error: (error: AnyError) => void; complete: () => void; }; type ObservableLike = { [Symbol.observable]?: () => ObservableLike | undefined; } & ({ subscribe(observer: Partial>): Subscription; } | { subscribe(observer: Partial>): Subscription; subscribe(next: (value: T) => void): Subscription; }); type SubjectLike = ObservableLike & Observer; 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;