import { IAutorunOptions, IReactionOptions } from 'mobx'; import { CancelToken } from 'axios'; import { Payload } from './payload'; export declare type Autorun = (props: ReactOpts) => Promise | Payload | undefined; export declare type Reaction = (expression: E, props: ReactOpts) => Promise | Payload | undefined; export interface ReactOpts { refreshToken: number; cancelToken: CancelToken; } export declare type MobxPromiseOpts = MobxPromiseAutorunOpts | MobxPromiseReactionOpts; export interface MobxPromiseAutorunOpts { autorun: Autorun; keep?: boolean; options?: IAutorunOptions; } export interface MobxPromiseReactionOpts { expression: () => E; effect: Reaction; keep?: boolean; options?: IReactionOptions; } export declare function spyForPayloads(cb: () => T): T; /** * Dummy function to avoid TypeScript complaining on unused * expressions */ export declare function reference(x: T): T; export declare class MobxPromiseBuilder { _view: Autorun; _exp: () => E; _eff: Reaction; _opts: Opts; autorun(view: Autorun): MobxPromiseBuilder; expression(exp: () => T): MobxPromiseBuilder; effect(eff: Reaction): MobxPromiseBuilder; options(o: Opts): this; build(): MobxPromise; } export declare function mobxPromise(): MobxPromiseBuilder<{}, {}, {}>; export declare class MobxPromise { private mainAtom; private spyAtom; private _payload; private opts; private cancel; private activeReaction?; private scheduledUpdate; private observed; private reloadToken; readonly payload: Payload; readonly loading: boolean; reload(): void; constructor(opts: MobxPromiseOpts); private becomeObserved; private tick; private update; private becomeUnobserved; private dispose; } //# sourceMappingURL=promise.d.ts.map